Python-Fehlermeldung: ImportError: cannot import name Akismet
Habe ich gesehen, dass viele ähnliche Fehler, aber ich kann nicht sehen, eine Lösung, die es gilt zu meinem speziellen problem.
Ich versuche, die Akismet-Modul, das auf meinem PYTHONPATH, dann wenn ich starten Sie den interaktiven interpreter, wenn ich from akismet import Akismet
(wie der docstring steht), bekomme ich die folgende Fehlermeldung:
from akismet import Akismet
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name Akismet
InformationsquelleAutor Doppelganger | 2010-02-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird es perfekt funktionieren, wenn Ihre PYTHONPATH richtig und weltweit (nur es selber getestet).
Setzen Sie den "akismet.py" Skript in "/Pfad/" und fügen Sie, dass der Pfad zu deinem PYTHONPATH. Stellen Sie sicher, Sie verwenden Doppelpunkte als Trennzeichen, wenn Sie mehrere Verzeichnisse im PYTHONPATH. Neu starten und verwenden Sie die
set
Befehl, um zu überprüfen, ob die PYTHONPATH richtig ist. Dann muss es definitiv funktionieren.Ok, das eigentliche Problem hier war, dass ich markiert hatte, den akismet-Ordner als Paket hinzufügen innerhalb eines init.py, ich löschte den Ordner und es funktioniert jetzt.
Gute Antwort, außer der Annahme Menschen-Neustart gelten die environment-variable ändert. Neustart einer app, sicher, aber ein Neustart des OS kernel und die firmware ist nicht erforderlich.
InformationsquelleAutor AndiDog
Ich will einfach nur ziehen mehr Aufmerksamkeit zu Alter ego die eigene Antwort auf seine Frage. Ich hatte diesen Fehler, und die situation ist diese:
Du versuchst zu importieren Funktion/Klasse X aus ein Modul namens sagen 'strategy.py'.
Leider hast du auch ein python-package-Verzeichnis genannt-Strategie, in anderen Worten, du hast ein Verzeichnis namens "Strategie", mit der mindestens eine einzelne Datei im Verzeichnis 'Strategie' genannt '____init___.py'.
Du dann vergessen Sie die Tatsache, dass Sie erstellt haben, den python-package-Verzeichnis, und importieren einer Klasse oder Funktion definiert in Datei
strategy.py
im 'root' - Verzeichnis, wie sofrom strategy import X
Was Sie dann bekommen, ist die
Python error: ImportError: cannot import name X
Fehler.Dem eigentlichen problem, als Alter ego Notizen, ist, dass die python-Interpret Vorrang gibt, um das Paket-Verzeichnis, das Sie erstellt haben, und sucht nach einer DATEI/MODUL namens X in das Paket-Verzeichnis und ignoriert das eigentliche Modul
strategy.py
und Funktion/Klasse X darin, dass Sie tatsächlich suchen.Dies ist genau das, was Sie erwarten und wollen, wenn Sie Lesen Sie die Dokumentation zu python-Pakete, aber wenn Sie Ihre Meinung ändern, auf halbem Weg entlang wie ich es Tat, können Sie am Ende Ihren Kopf zu verkratzen.
InformationsquelleAutor david.barkhuizen
Prüfen Sie, ob Ihr PYTHONPATH ist wirklich das, was Sie erwarten, es zu werden, z.B. indem Sie diese in einer interaktiven Konsole:
ist akismet.py wirklich in einem dieser Ordner?
InformationsquelleAutor Benjamin Wohlwend
Sollten Sie das Verzeichnis mit der "akismet" - Verzeichnis in Ihrem Pfad. Ich denke, Sie haben Hinzugefügt die 'akismet' - Verzeichnis selbst nach $PYTHONPATH.
Wenn Sie schreiben:
Python versucht, öffnen Sie die Datei
akismet/Akismet.py
irgendwo in Ihrem Suchpfad.All dies vorausgesetzt
Akismet
ist eine Datei-undakismet
ist ein Verzeichnis. Wenn es eineakismet.py
- Datei, dann das Verzeichnis mit dieser Datei aufgelistet werden sollen, die in$PYTHONPATH
.InformationsquelleAutor Jacek Konieczny
Einfach:
Nun starten Sie Ihre Anwendung, und Sie sollten gut zu gehen.
InformationsquelleAutor un33k
Ich vergesse immer, dass ipython importiert die Module wenn Sie
run
Befehl innerhalb der ipython interpreter. Es wird nicht re-importieren Sie alle Module ändern, so dass jede neue Variablen oder Funktionen nicht gefunden werden. Dies ist ein bekanntes Problem mit ipython.Fazit: Vermeiden Sie die Verwendung
run
als es nicht laden Ihre Module.InformationsquelleAutor david_adler