Seite 1 von 1
Abstruses Verhalten bei Importen
Verfasst: Donnerstag 23. Februar 2017, 23:26
von pixewakb
Ich habe zwei Dateien - beide sicher Python 3.4 - und in der einen Datei wird aus einem Modul eine Funktion korrekt importiert, wenn ich den Quellcode in eine andere Datei einfüge, kann ich es nicht mehr importieren und erhalte eine Fehlermeldung. Ich habe sichergestellt, dass das Modul korrekt installiert ist, ich habe geprüft, dass es Python 3.4 ist, ich kann Tests laufen lassen, auch im Modul funktioniert alles.
Ich stehe etwas auf dem Schlauch - posten kann ich den Quellcode m. E. nicht. Hat jemand eine Idee, woher so ein Verhalten beim Import kommen könnte!?
<s>In einem dritten Skript funktioniert jetzt der Import, die Funktion lädt ein Wörterbuch ins Programm, was angezeigt wird (pprint), dann erhalte ich aber die Fehlermeldung:</s>
<s>Ich suche mal in den Hilfeforen - die obige Fehlermeldung ist jetzt neu.</s>
Den 2. Fehler hat verursacht, dass ich mit woerterbuch(x) statt mit korrekt woerterbuch[x] zugegriffen habe.
Re: Abstruses Verhalten bei Importen
Verfasst: Donnerstag 23. Februar 2017, 23:50
von BlackJack
@pixewakb: Es könnte ein anderes Modul mit dem gleichen Namen vorher im Modulsuchpfad liegen, oder Du hast vielleicht irgendwo zyklische Importe. Ersteres findet man leicht heraus in dem man das Modul importiert und gleich in der Zeile darauf mit `print()` ausgibt, und schaut ob das tatsächlich das Modul ist, welches man erwartet hat.
Re: Abstruses Verhalten bei Importen
Verfasst: Freitag 24. Februar 2017, 22:42
von pixewakb
BlackJack hat geschrieben:@pixewakb: Es könnte ein anderes Modul mit dem gleichen Namen vorher im Modulsuchpfad liegen, oder Du hast vielleicht irgendwo zyklische Importe. Ersteres findet man leicht heraus in dem man das Modul importiert und gleich in der Zeile darauf mit `print()` ausgibt, und schaut ob das tatsächlich das Modul ist, welches man erwartet hat.
Ich erinnere mich, dass das Modul - eine alte Funktion (outdated), 2 Klassen, 3 Funktionen - bei der Installation schon mal Probleme gemacht hat und ich es einmal möglicherweise händisch ins Verzeichnis der site-packages kopiert habe. Problem der Installation war m. E. ein Versionsproblem, d. h. die Version im setup.py-Skript ist einmal nach unten korrigiert worden.
1.) Es gibt m. E. kein weiteres Modul gleichen Namens. Auch die Funktion hat einen singulären Namen.
2.) Das Modul macht regen Gebrauch vom csv-Package, ansonsten kann ich keine Auffälligkeiten bemerken. Ich schaue es mir mit help in der Konsole an und ich lade jeweils das richtige Modul, nur eben teils mit einer Version ohne die zusätzliche Funktion. (Kann da noch irgendwo eine alte Version rumschwirren?) In einigen Fällen (!) wird die Funktion korrekt geladen, in anderen Fällen nicht. Mir erschließt sich da kein Unterschied.
Re: Abstruses Verhalten bei Importen
Verfasst: Freitag 24. Februar 2017, 22:46
von pixewakb
Im Verzeichnis "__pycache__" habe ich gerade die Datei "modulname.cpython-34.pyc" gelöscht. Ist aber auch nicht erfolgreich.
Ich gebe es auf. Wahrscheinlich gibt es einen kleinen Fehler, der mir nicht auffällt. Importiere ich u. a. auch die Hauptklasse aus dem Modul, läuft alles, importiere ich nur die Funktionen, gibt es nur bei einer Funktion eine Fehlermeldung. Mir unverständlich. Ich schlafe mal einige Tage darüber und überlege es mir dann noch mal in Ruhe.