Hallo Leute!
Ich bin ganz neu in der Python-Umgebung und somit noch blutiger Anfänger. Hab zwar relativ viel Programmiererfahrung (c/c++/c#, java etc), aber ich bin hier echt am verzweifeln.
Habe vor mir ein python Programm (Converter), welches über die Kommandozeile ein Programm aufruft. Verstehen kann ich den kompletten Code ohne Probleme. Jetzt gibt es noch eine 2. Datei (ConvTools) mit mehreren Klassen drinnen.
Dort habe ich eine zusätzliche Klasse hinzugefügt, um diese in Converter verwenden zu können.
Im Converter habe ich "from convtools import *" um eben diese Klassen dem Package hinzuzufügen (zumindest hätte ich das so verstanden.
Jedoch bekomme ich jetzt immer einen Fehler, wenn ich auf meine neue Klasse zugreifen möchte.
Der Fehler lautet: Name Error: global name xxx is not defined.
Ich komme einfach nicht weiter.
mfg
Gingi
PS: hätte die Suche schon probiert nur weiß ich nicht so recht nach was ich suchen sollte
Probleme mit einem alten Python Skript
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
Wie snafu schon schrieb: Ohne Code können wir dir da auch nicht weiterhelfen. Außerdem macht man keine *-Importe mehr.
@Gingi: Die Beschreibug ist in sich schon nicht stimmig. Wenn die Datei `ConvTools.py` heisst, dann stimmt der Import von `convtools` nicht.
Ansonsten heisst das wahrscheinlich, dass es im Modul `convtools` keine Klasse mit dem Namen `xxx` gibt, denn falls dort eine solche gäbe, hätte der Import diesen Namen in den Namensraum des importierenden Moduls geholt.
Falls Du den betreffenden Quelltext nicht zeigen möchtest oder darfst, versuche das Problem doch einfach mal mit einem Beispiel nach zu stellen.
Ansonsten heisst das wahrscheinlich, dass es im Modul `convtools` keine Klasse mit dem Namen `xxx` gibt, denn falls dort eine solche gäbe, hätte der Import diesen Namen in den Namensraum des importierenden Moduls geholt.
Falls Du den betreffenden Quelltext nicht zeigen möchtest oder darfst, versuche das Problem doch einfach mal mit einem Beispiel nach zu stellen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also in meinem Gehirn wird der geparst und die Semantik führt nicht zu Exceptions.numerix hat geschrieben:Was ist das denn für ein Satz?!querdenker hat geschrieben:Außerdem macht man keine *-Importe mehr.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Nein, kein wahrer.keppla hat geschrieben:Ein wahrer? Worauf willst du hinaus?numerix hat geschrieben:Was ist das denn für ein Satz?!querdenker hat geschrieben:Außerdem macht man keine *-Importe mehr.
Die Aussage ist falsch, wenn sie - so wie hier - ("man", "keine ... mehr") als pauschale Aussage ohne Berücksichtigung des konkreten Codes quasi als Axiom hingestellt wird. (Was leider alle Nase lang im Forum passiert).
Ja, es gibt gute Gründe, in vielen (vermutlich den meisten) Fällen, auf Sternchenimporte zu verzichten. Das kann man in zahlreichen Threads auch nachlesen. Aber der Satz "man macht es nicht mehr" ist einfach kein guter Satz. Wer genau weiß, was er importiert, und sich bewusst ist, welche Auswirkungen das hat, der kann guten Gewissens auch mit Sternchen importieren.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also wenn man weiß dass man es falsch macht, dann darf man es ruhig falsch machen?numerix hat geschrieben:Wer genau weiß, was er importiert, und sich bewusst ist, welche Auswirkungen das hat, der kann guten Gewissens auch mit Sternchen importieren.
Also ganz ehrlich, sinnvolle Gründe für *-Imports kann man an einer Hand abzählen, selbst nachdem ein Großteil der Finger amutiert wurde. Also ganz selten. Daher ist es durchaus vertretbar, Leuten mit weniger Ahnung zu sagen, dass es keine gute Idee ist. Das ist etwas parallel zu l2tabu - einige Dinge sollte man vermeiden und natürlich haben sie ihren Grund aber den immer dazuzuschreiben ist für Anfänger eben selten besonders informativ noch zielführend. Wenn es ihn interessiert, steht es ihm ja frei nachzufragen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Also, ich denke, du weißt, was ich meine.Leonidas hat geschrieben:Also wenn man weiß dass man es falsch macht, dann darf man es ruhig falsch machen?numerix hat geschrieben:Wer genau weiß, was er importiert, und sich bewusst ist, welche Auswirkungen das hat, der kann guten Gewissens auch mit Sternchen importieren.
Ich will mich jetzt auch nicht (erneut) dazu auslassen; das habe ich in einem anderen Thread schonmal getan (im Zusammenhang mit dem "bösen" input() ...). Hat mich halt aufgeregt der Satz von querdenker ...
subprocess!BlackJack hat geschrieben:@snafu: Nee das ist doof. os.popen und os.popen2-4 rockt!
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek
In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
[ ] Du hast den Witz verstandenname hat geschrieben:subprocess!BlackJack hat geschrieben:@snafu: Nee das ist doof. os.popen und os.popen2-4 rockt!
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Das mit dem poppen ist immer so Problematisch. Da muss man aufpassen das es keinen Fork gibt!
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Jaja, und wenn man die Kinder dann nicht ordentlich behandelt, werden sie zu Zombies und müssen gekillt werden.
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Nein, kein wahrer.numerix hat geschrieben:keppla hat geschrieben:Ein wahrer? Worauf willst du hinaus?numerix hat geschrieben:Was ist das denn für ein Satz?!querdenker hat geschrieben:Außerdem macht man keine *-Importe mehr.
Die Aussage ist falsch, wenn sie - so wie hier - ("man", "keine ... mehr") als pauschale Aussage ohne Berücksichtigung des konkreten Codes quasi als Axiom hingestellt wird. (Was leider alle Nase lang im Forum passiert).
[/code]
Ack.