Python-Fehler "ImportError: Kein Modul benannt"

452

Python wird in einem lokalen Verzeichnis installiert.

Mein Verzeichnisbaum sieht folgendermaßen aus:

(local directory)/site-packages/toolkit/interface.py

Mein Code ist hier drin:

(local directory)/site-packages/toolkit/examples/mountain.py

Um das Beispiel auszuführen, schreibe ich python mountain.pyund in den Code, den ich habe:

from toolkit.interface import interface

Und ich bekomme den Fehler:

Traceback (most recent call last):
  File "mountain.py", line 28, in ?
    from toolkit.interface import interface
ImportError: No module named toolkit.interface

Ich habe bereits geprüft sys.pathund dort habe ich das Verzeichnis /site-packages. Außerdem habe ich die Datei __init__.py.binim Toolkit-Ordner, um Python anzuzeigen, dass dies ein Paket ist. Ich habe auch ein __init__.py.binim Beispielverzeichnis.

Ich weiß nicht, warum Python die Datei nicht finden kann, wenn sie sich befindet sys.path. Irgendwelche Ideen? Kann es ein Berechtigungsproblem sein? Benötige ich eine Ausführungserlaubnis?

Eduardo
quelle
3
Überprüfen Sie, ob Sie die Berechtigung für diese Datei aus Python gelesen haben. Siehe: stackoverflow.com/a/20999950/1657225
cSn
1
Bitte markieren Sie Ihr Verzeichnis als "Ressourcenstamm", damit PyCharm weiß, dass es sich um ein Paket handelt.
Emmmphd
Das Problem in meinem Fall war, dass es die Erlaubnis gab, neu installierte Module nicht zu haben 755. Dies lag daran, dass umaskauf dem Computer 0027aufgrund dessen otherskeine readBerechtigung vorhanden war, wodurch das Modul nicht gelesen wurde. Das Hinzufügen einer readBerechtigung hat mein Problem behoben. Es lohnt sich, die Berechtigung des Zielverzeichnisses nach der Installation zu überprüfen.
Anu
Versuchen Sie, URL zu blasen: stackoverflow.com/questions/47887614/…
Rawan-25
Möglicherweise lautet der lokale Verzeichnisname interface (war ein Konflikt).
Benyamin Jafari

Antworten:

267

Aufgrund Ihrer Kommentare zu orips Beitrag denke ich, dass Folgendes passiert ist:

  1. Sie haben __init__.pyunter Windows bearbeitet .
  2. Der Windows-Editor fügte etwas hinzu, das nicht gedruckt wurde, möglicherweise einen Wagenrücklauf (Zeilenende in Windows ist CR / LF; unter Unix ist es nur LF) oder möglicherweise STRG-Z (Windows-Dateiende).
  3. Sie haben WinSCP verwendet, um die Datei auf Ihre Unix-Box zu kopieren.
  4. WinSCP dachte: "Dies hat etwas, das kein grundlegender Text ist. Ich werde eine .bin-Erweiterung einfügen, um Binärdaten anzuzeigen."
  5. Das fehlende __init__.py(jetzt aufgerufene __init__.py.bin) bedeutet, dass Python das Toolkit nicht als Paket versteht.
  6. Sie erstellen __init__.pyim entsprechenden Verzeichnis und alles funktioniert ...?
John Fouhy
quelle
50
Auch Python -c 'import sys; print sys.path 'hilft - manchmal hat der Benutzer die Dateien in einem nicht gescannten Pfad abgelegt.
Mikebabcock
1
Ich verwende dasselbe, außer dass WinSCP nicht angehängt wurde .bin.
Benutzer
9
Wenn ich ein leeres "__init__.py" habe, passiert dasselbe?
Dietbacon
2
OMG, du herrschst! Dies ist meine Geschichte: 1. Sie haben init .py unter Windows bearbeitet. 2. Es wurde ein TAB anstelle von Leerzeichen hinzugefügt. 3. Sie googeln viel, bis Sie diesen Beitrag gefunden haben! ;)
GBrian
1
Für mich war das Problem, dass ich es verwendet habe, python driver.pyals ich es python3 driver.pyseit meiner Installation mit hätte verwenden sollen pip3.
Eric Wiener
72

Tut

(local directory)/site-packages/toolkit

haben eine __init__.py?

Damit der Import durch Ihre Verzeichnisse läuft, muss jedes Verzeichnis eine __init__.pyDatei haben.

igorgue
quelle
1
Guter Punkt! Anmerkung: Seit Python 3.3 wird jedes Verzeichnis auf sys.path mit einem Namen erkannt, der dem Paketnamen entspricht.
PatrickT
1
Ist dies nicht nur für relative Pfadreferenzen erforderlich? Warum muss jedes Verzeichnis es haben?
Sonic Soul
56

Als ich diese Übung in LPTHW machte, stieß ich auf etwas sehr Ähnliches. Ich konnte Python nie dazu bringen zu erkennen, dass ich Dateien in dem Verzeichnis hatte, aus dem ich anrief. Aber ich konnte es am Ende zum Laufen bringen. Was ich getan habe und was ich empfehle, ist Folgendes zu versuchen:

(HINWEIS: Von Ihrem ersten Beitrag an gehe ich davon aus, dass Sie einen * NIX-basierten Computer verwenden und Dinge über die Befehlszeile ausführen. Daher ist dieser Rat darauf zugeschnitten. Da ich Ubuntu ausführe, habe ich dies getan.)

1) Wechseln Sie in das Verzeichnis (cd) über dem Verzeichnis, in dem sich Ihre Dateien befinden. In diesem Fall versuchen Sie, die mountain.pyDatei auszuführen und das toolkit.interface.pyModul aufzurufen , das sich in separaten Verzeichnissen befindet. In diesem Fall würden Sie zu dem Verzeichnis wechseln, das Pfade zu diesen beiden Dateien enthält (oder mit anderen Worten zu dem nächstgelegenen Verzeichnis, das die Pfade dieser beiden Dateien gemeinsam nutzen). Welches ist in diesem Fall dietoolkit Verzeichnis.

2) Wenn Sie sich im tookitVerzeichnis befinden, geben Sie diese Codezeile in Ihre Befehlszeile ein:

export PYTHONPATH=.

Dies setzt Ihren PYTHONPATH auf ".", Was im Grunde bedeutet, dass Ihr PYTHONPATH jetzt nach aufgerufenen Dateien in dem Verzeichnis sucht, in dem Sie sich gerade befinden (und genauer gesagt in den Unterverzeichniszweigen des Verzeichnisses , in dem Sie sich befinden. Es wird also nicht nur in Ihrem aktuellen Verzeichnis angezeigt, sondern in allen Verzeichnissen, die sich in Ihrem aktuellen Verzeichnis befinden.

3) Nachdem Sie Ihren PYTHONPATH im obigen Schritt eingestellt haben, führen Sie Ihr Modul aus Ihrem aktuellen Verzeichnis (dem toolkitVerzeichnis) aus. Python sollte nun die von Ihnen angegebenen Module finden und laden.

Hoffe das hilft. Ich war selbst ziemlich frustriert darüber.

Specterace
quelle
2
Oder unter Windows set PYTHONPATH=..
CJBarth
Das hat bei mir funktioniert. Außerdem habe ich meine PYTHONPATH-Frustrationen VOLLSTÄNDIG vereinfacht, da ich sie jedes Mal, wenn ich die Maschine wechsle, auf einen absoluten Pfad aktualisieren müsste. Danke danke danke.
the_e
41

Stellen Sie unter * nix außerdem sicher, dass PYTHONPATH korrekt konfiguriert ist, insbesondere, dass es das folgende Format hat:

 .:/usr/local/lib/python

(Beachten Sie das .:am Anfang, damit es auch im aktuellen Verzeichnis suchen kann.)

Abhängig von der Version kann es sich auch an anderen Orten befinden:

 .:/usr/lib/python
 .:/usr/lib/python2.6
 .:/usr/lib/python2.7 and etc.
Renaud
quelle
6
Es kann auch sein .:/usr/lib/python, .:/usr/lib/python2.6, .:/usr/lib/python2.7usw. je nach Version
Nikita Volkov
Für mich befindet sich das Modul in /usr/local/lib/python3.4/dist-packages, aber wenn ich python3 in das Terminal (Ubuntu) eingebe und versuche, es zu importieren, kann ich es nicht sagen existiert nicht. "ImportError: kein Modul x existiert"
user65165
Das Hinzufügen #!/usr/bin/pythonam Ende einer Datei sollte auch funktionieren, oder?
Nearoo
1
@Nearoo Ich denke nicht, dass das funktionieren wird. Außerdem wird dieser Shebang normalerweise oben in einer Datei hinzugefügt.
Renaud
2
Unter MacOSX wurde dies behoben, indem PYTHONPATH = / usr / local / lib / python2.7 / site-packages zu Startskripten hinzugefügt wurde.
Johan Snowgoose
23

Ich habe mein eigenes Problem gelöst und werde eine Zusammenfassung der Fehler und der Lösung schreiben:

Die Datei muss genau aufgerufen werden __init__.py. Wenn die Erweiterung anders ist als in meinem Fall, .py.binkann Python nicht durch die Verzeichnisse navigieren und dann die Module nicht finden. Zum Bearbeiten der Dateien benötigen Sie einen Linux-Editor wie vi oder nano . Wenn Sie einen Windows-Editor verwenden, werden einige versteckte Zeichen geschrieben.

Ein weiteres Problem, das sich darauf auswirkte, war, dass ich eine andere Python-Version vom Root installiert hatte. Wenn also jemand mit einer lokalen Python-Installation arbeitet, stellen Sie sicher, dass die Python-Installation, auf der die Programme ausgeführt werden, die lokale Python ist. Um dies zu überprüfen, überprüfen Sie einfach which python, ob sich die ausführbare Datei in Ihrem lokalen Verzeichnis befindet. Wenn nicht, ändern Sie den Pfad, aber stellen Sie sicher, dass das lokale Python-Verzeichnis vor dem anderen Python liegt.

Eduardo
quelle
Ein Problem, das ich bekam, war, dass ein Modul von pip (neu) installiert wurde und nur der Root-Benutzer darauf zugreifen konnte, sodass der Benutzer, der das Programm ausführte, es nicht sah.
Jānis Elmeris
@ JānisElmeris Kannst du den obigen Kommentar näher erläutern? Ich denke, ich stehe auch vor einem ähnlichen Fehler. Ich habe meine __init__.pyDateien in einem relevanten Verzeichnis abgelegt, aber ich habe ein Paket manuell mit installiert setup.py. Wie würde die Installation eines neuen Pakets den Import stören?
Krishna Oza
@darth_coder, sorry, das war vor sechs Jahren und ich erinnere mich nicht an den Fall. Außerdem beschäftige ich mich sehr wenig mit Python, in letzter Zeit überhaupt nicht. Nach dem, was ich geschrieben habe, kann ich mir nur vorstellen, dass ich ein Paket als Root installiert habe, wodurch die Berechtigungen geändert wurden, sodass andere Benutzer nicht den Zugriff hatten, den sie zuvor hatten.
Jānis Elmeris
19

Eine einfache Lösung besteht darin, das Modul mit zu installieren, python -m pip install <library-name>anstatt pip install <library-name> bei Administratorbeschränkungen sudo zu verwenden

Badr Bellaj
quelle
2
Was erreicht python -mman vor pip install?
sporc
1
@sporc - Wenn Sie das Befehlszeilenflag -m verwenden, importiert Python ein Modul oder Paket für Sie und führt es dann als Skript aus. Wenn Sie das Flag -m nicht verwenden, wird die von Ihnen genannte Datei nur als Skript ausgeführt.
Tony Ciccarone
Ich bin mir nicht sicher, was diese Antwort zu sagen versucht python -m pip..., aber pip...nicht: Sie sind praktisch dasselbe, vorausgesetzt, sie befinden sich tatsächlich im selben pythonVerzeichnis. Möglicherweise war die beobachtete Situation, dass das eigenständige pipProgramm in einigen älteren Python -Versionen nicht verfügbar war (aber es ist jetzt in den neuesten Versionen 2.7 und 3.x verfügbar). In diesem Fall befand sich das pythonin einer lokalen virtuellen Umgebung und pipwar es nicht. Daher wurde python -m pip installes in der lokalen virtuellen Umgebung installiert, während pipversucht wurde, es in der Systempython zu installieren (und ohne Sudo fehlschlug). Auf jeden Fall macht es keinen Sinn.
Michael
17

Um ein Verzeichnis als Paket zu markieren, benötigen Sie eine Datei mit dem Namen __init__.py. Hilft dies?

orip
quelle
Ich habe bereits eine Datei mit dem Namen init .py.bin. Wenn ich den Namen in init .py ändere, wird folgende Fehlermeldung angezeigt: /__init__.py ", Zeile 1" Dienstprogramme "," Demo "] ^ SyntaxError: Ungültige Syntax
Eduardo
Was ist in init .py? Schreiben Sie das bitte als Teil Ihrer Frage.
S.Lott
Es gibt nichts, es ist leer. Es war mit dem Paket, das ich heruntergeladen habe. Muss ich etwas in die Datei schreiben?
Eduardo
@ S.Lott: du musst nichts in deine init .py einfügen oder?
orgorgue
1
@ Eduardo. Ihre init .py erhält einen Fehler. Und du sagst, es ist leer. Das ist schwer zu vereinbaren. Und es kann nicht init .py.bin genannt werden - Python würde diese Datei ignorieren. Normalerweise kann es nichts enthalten.
S.Lott
16

Mit PyCharm(Teil der JetBrains-Suite) müssen Sie Ihr Skriptverzeichnis als Quelle definieren:
Right Click > Mark Directory as > Sources Root

Monothreaded
quelle
12

Wenn Sie diese Antwort lesen, heißt es, dass Sie __init__.pyam richtigen Ort sind, alle Abhängigkeiten installiert haben und immer noch die erhaltenImportError .

Ich hatte ein ähnliches Problem, außer dass mein Programm bei Ausführung mit PyCharm einwandfrei lief, aber der obige Fehler, wenn ich es vom Terminal aus ausführte. Nachdem ich weiter gegraben hatte, stellte ich fest, dass PYTHONPATHder Eintrag für das Projektverzeichnis nicht vorhanden war. Also setze ich PYTHONPATHper Import Anweisung funktioniert auf PyCharm aber nicht vom Terminal :

export PYTHONPATH=$PYTHONPATH:`pwd`  (OR your project root directory)

Es gibt eine andere Möglichkeit, dies zu tun, indem Sie sys.pathFolgendes verwenden:

import sys
sys.path.insert(0,'<project directory>') OR
sys.path.append('<project directory>')

Sie können Einfügen / Anhängen basierend auf der Reihenfolge verwenden, in der Ihr Projekt durchsucht werden soll.

avp
quelle
12

Für mich war es etwas wirklich Dummes. Ich habe die Bibliothek mit installiert, pip3 installaber mein Programm python program.pyim Gegensatz zu ausgeführt python3 program.py.

kev
quelle
1
Wow ! Das hat auch bei mir funktioniert.
JavaDeveloper
1
Du hast meinen Tag gerettet.
Aymen
7

Jep. Sie benötigen das Verzeichnis, um die __init__.pyDatei zu enthalten. Dies ist die Datei, die das Paket initialisiert. Hier haben Sie einen Blick auf diese .

Die Dateien __init__.py sind erforderlich, damit Python die Verzeichnisse als Pakete enthaltend behandelt. Auf diese Weise wird verhindert, dass Verzeichnisse mit einem allgemeinen Namen, z. B. eine Zeichenfolge, unbeabsichtigt gültige Module verbergen, die später im Modul-Suchpfad auftreten. Im einfachsten Fall kann __init__.py nur eine leere Datei sein, aber es kann auch Initialisierungscode für das Paket ausführen oder die später beschriebene Variable __all__ setzen.

miya
quelle
6
  1. Sie müssen die Datei __ init__.py in demselben Verzeichnis haben, in das Sie die Datei importieren.
  2. Sie können nicht versuchen, eine Datei mit demselben Namen zu importieren und eine Datei aus zwei Ordnern zu sein, die auf dem PYTHONPATH konfiguriert sind.

zB: / etc / environment

PYTHONPATH = $ PYTHONPATH: / opt / folder1: / opt / folder2

/ opt / folder1 / foo

/ opt / folder2 / foo

Und wenn Sie versuchen, eine foo-Datei zu importieren, weiß Python nicht, welche Sie möchten.

von foo import ... >>> importerror: kein modul namens foo

Iasmini Gomes
quelle
5

Meine zwei Cent:

Geben Sie hier die Bildbeschreibung ein

Spucke:

Traceback (most recent call last):
      File "bash\bash.py", line 454, in main
        import bosh
      File "Wrye Bash Launcher.pyw", line 63, in load_module
        mod = imp.load_source(fullname,filename+ext,fp)
      File "bash\bosh.py", line 69, in <module>
        from game.oblivion.RecordGroups import MobWorlds, MobDials, MobICells, \
    ImportError: No module named RecordGroups

Das hat mich verdammt verwirrt - ich habe Posts und Posts durchgesehen, die auf hässliche Syspath-Hacks hinweisen (wie Sie sehen, waren meine __init__.pyalle da). Nun stellt sich heraus, dass game / oblivion.py und game / oblivion Python verwirrten, was das eher wenig hilfreiche "Kein Modul namens RecordGroups" ausspuckte. Ich würde mich für eine Problemumgehung und / oder Links interessieren, die dieses (gleichnamige) Verhalten dokumentieren -> BEARBEITEN (2017.01.24) - Was ist, wenn ich ein Modul und ein Paket mit demselben Namen habe ? Interessanterweise haben normalerweise Pakete Vorrang, aber anscheinend verstößt unser Launcher dagegen.

EDIT (2015.01.17): Ich habe nicht erwähnt, dass wir einen benutzerdefinierten Launcher verwenden, der seziert wurde hier .

Mr_and_Mrs_D
quelle
eher wie der Weg ist aus. game.oblivion.RecordGroups !== game/oblivion/patchers/RecordGroups.py Vielleicht möchten Sie das beheben, indem Sie Ihren Python-Code anhängen, um Folgendes zu verwenden:game.oblivion.patchers.RecordGroups
Dwight Spencer
@ DwightSpencer: Ich bin sicher, dass ich die "RecordGroups" importiert game.oblivion.__init__.pyhabe, muss dies aber möglicherweise überprüfen
Mr_and_Mrs_D
4

Linux: Importierte Module befinden sich in /usr/local/lib/python2.7/dist-packages

Wenn Sie ein in C kompiliertes Modul verwenden, vergessen Sie nicht, die .so-Datei danach zu ändern sudo setup.py install.

sudo chmod 755 /usr/local/lib/python2.7/dist-packages/*.so
KrisWebDev
quelle
3

In meinem Fall bestand das Problem darin, dass ich eine Verknüpfung zu debug python & herstellte boost::Python, was erfordert, dass die Erweiterung FooLib_d.pydnicht nur FooLib.pyd; Durch Umbenennen der Datei oder Aktualisieren der CMakeLists.txtEigenschaften wurde der Fehler behoben.

Peter Karasev
quelle
3

Wenn Sie alle oben angegebenen Methoden ausprobiert haben, aber fehlgeschlagen sind, hat Ihr Modul möglicherweise denselben Namen wie ein integriertes Modul. Oder ein Modul mit demselben Namen, das in einem Ordner mit hoher Priorität vorhanden istsys.path als das Ihres Moduls hat.

Sagen Sie zum Debuggen Ihre from foo.bar import bazBeschwerden ImportError: No module named bar. Wechseln zu import foo; print foo, um den Pfad von anzuzeigen foo. Ist es das, was du erwartest?

Wenn nicht, benennen Sie entweder um foooder verwenden Sie absolute Importe .

liushuaikobe
quelle
1
Für mich ergibt dies ImportError: No module named foo.
Alex
3

Mein Problem war, dass ich das Verzeichnis mit der __init__.pyDatei zu PYTHONPATH hinzugefügt habe, als ich tatsächlich das übergeordnete Verzeichnis hinzufügen musste.

Reich
quelle
3

An alle, die dieses Problem noch haben. Ich glaube, Pycharm wird mit Importen verwechselt. Wenn ich 'aus dem Namespace etwas importieren' schreibe, wird die vorherige Zeile rot unterstrichen, was darauf hinweist, dass ein Fehler vorliegt, aber funktioniert. '' Aus .namespace etwas importieren 'wird jedoch nicht unterstrichen, funktioniert aber auch nicht.

Versuchen

try:
    from namespace import something 
except NameError:
    from .namespace import something
AKJ
quelle
1
Die erste ist Python 2-Syntax, die zweite ist Python 3.
Tanya Branagan
2

Ich habe mein Problem durch Schreiben behoben print (sys.path)und festgestellt, dass Python trotz einer Neuinstallation veraltete Pakete verwendet. Beim Löschen dieser erstellten Python werden automatisch die richtigen Pakete verwendet.

Zitrone
quelle
2

In meinem Fall, weil ich PyCharm und PyCharm verwende, erstellen Sie für jedes Projekt im Projektordner ein 'venv', aber es ist nur eine Mini-Umgebung von Python. Sie haben zwar die Bibliotheken installiert, die Sie in Python benötigen, aber in Ihrem benutzerdefinierten Projekt 'venv' ist es nicht verfügbar. Dies ist der eigentliche Grund für 'ImportError: In PyCharm ist kein Modul mit dem Namen xxxxxx' aufgetreten. Um dieses Problem zu beheben, müssen Sie Ihrem benutzerdefinierten Projektumfang mithilfe der folgenden Schritte Bibliotheken hinzufügen:

  • In PyCharm über das Menü 'Datei' -> Einstellungen
  • Klicken Sie im Dialogfeld "Einstellungen" auf "Projekt: XXXProjekt-> Projektinterpreter"
  • Klicken Sie auf die Schaltfläche "Hinzufügen". Daraufhin wird das Dialogfeld "Verfügbare Pakete" angezeigt
  • Durchsuchen Sie Ihre Bibliothek und klicken Sie auf "Paket installieren".
  • Anschließend wird das gesamte benötigte Paket in Ihrem benutzerdefinierten Projektordner "venv" installiert.

Einstellungsdialog

Genießen.

Yuanhui
quelle
0

Nachdem ich nur das gleiche Problem hatte, stellte ich fest, dass meine Lösung darin bestand, alle pycDateien aus meinem Projekt zu löschen. Es scheint, dass diese zwischengespeicherten Dateien diesen Fehler irgendwie verursacht haben.

Der einfachste Weg, dies zu tun, bestand darin, im Windows-Explorer zu meinem Projektordner zu navigieren und zu suchen *.pyc, dann alle auszuwählen ( Ctrl+ A) und sie zu löschen ( Ctrl+ X).

Es ist möglich, dass ich meine Probleme durch Löschen der spezifischen pycDatei hätte lösen können, aber ich habe es nie versucht

Sayse
quelle
0

Ich hatte das gleiche Problem : Import error. Außerdem wurde die Bibliothek zu 100% korrekt installiert. Die Ursache des Problems war, dass auf meinem PC 3 eine Version von Python (Anaconda-Paket) installiert wurde. Aus diesem Grund wurde die Bibliothek nicht am richtigen Ort installiert. Danach habe ich in meiner IDE PyCharm einfach auf die richtige Version von Python umgestellt.

Rocketq
quelle
0

Ich hatte den gleichen Fehler. Dies wurde dadurch verursacht, dass jemand einen Ordner im selben Ordner wie mein Skript erstellt hat, dessen Name mit einem Modul in Konflikt stand, das ich von einem anderen Ort importiert habe. Anstatt das externe Modul zu importieren, sah es sich in diesem Ordner um, der offensichtlich nicht die erwarteten Module enthielt.

Toivo Säwén
quelle
0

Ich hatte das gleiche Problem (Python 2.7 Linux), ich habe die Lösung gefunden und möchte sie teilen. In meinem Fall hatte ich die folgende Struktur:

Booklet
-> __init__.py
-> Booklet.py
-> Question.py
default
-> __init_.py
-> main.py

In 'main.py' hatte ich alle folgenden Kombinationen erfolglos ausprobiert:

from Booklet import Question
from Question import Question
from Booklet.Question import Question
from Booklet.Question import *
import Booklet.Question
# and many othet various combinations ...

Die Lösung war viel einfacher als ich dachte. Ich habe den Ordner "Booklet" in "Booklet" umbenannt und das wars. Jetzt kann Python die Klasse Question normal importieren, indem der Code in 'main.py' verwendet wird:

from booklet.Booklet import Booklet
from booklet.Question import Question
from booklet.Question import AnotherClass

Daraus kann ich schließen, dass Paketnamen (Ordner) wie 'booklet' in Kleinbuchstaben beginnen müssen, sonst verwechselt Python sie mit Klassennamen und Dateinamen.

Anscheinend war dies nicht Ihr Problem, aber John Fouhys Antwort ist sehr gut und dieser Thread enthält fast alles, was dieses Problem verursachen kann. Das ist also noch eine Sache und ich hoffe, dass dies vielleicht anderen helfen könnte.

Ioaniatr
quelle
0

In meinem Fall habe ich den Pfad zum Ordner package.egg und nicht das eigentliche Paket darunter eingefügt. Ich habe das Paket auf die oberste Ebene kopiert und es hat funktioniert.

Fakrudeen
quelle
0

Das hat bei mir funktioniert: __init__.pyDatei im übergeordneten Ordner erstellt (in Ihrem Fall im site-packagesOrdner). Und so importiert:

from site-packages.toolkit.interface import interface

Hoffe, es wird auch für Sie nützlich sein!

Sherzod
quelle
0

In Linux Server versuchen dos2unix script_name

(Entfernen Sie alle (falls vorhanden) pycDateien mit dem Befehl. find . -name '*.pyc' -delete)

und in dem Fall erneut ausführen, wenn Sie an einem Skript unter Windows gearbeitet haben

Poli
quelle
0

In meinem Fall habe ich sys.path.insert()ein lokales Modul importiert und module not foundaus einer anderen Bibliothek abgerufen. Ich musste sys.path.insert()die gemeldeten Importe unterschreiben module not found. Ich denke, die beste Vorgehensweise ist es, sys.path.insert()Ihre Importe ganz unten zu platzieren.

Michał Zawadzki
quelle