Wenn man versucht, ein Modul foo
im Quellverzeichnis zu importieren, bekommt man eine ziemlich verwirrende ImportError
Nachricht: ImportError: No module named foo
.Fangen python 'ImportError' wenn aus Quellverzeichnis importieren
Wie kann ich diesen Fall leicht abfangen und eine informativere Nachricht, z.B. 'Bitte Modul foo nicht aus dem Quellverzeichnis laden'?
die __init__.py
Having, würde ich beginnen mit:
try:
from _foo import *
except ImportError:
## check whether in the source directory...
So würde Ich mag die verschiedenen Ursachen für eine ImportError
unterscheiden (zB weil ein Modul foo
benannt ist nicht installiert), und erfassen den Fall in dem sich die setup.py
im aktuellen Verzeichnis befindet. Was wäre eine elegante Art, dies zu tun?
Danke für die schnelle Antwort. Ich suche eher nach einer Möglichkeit, zu überprüfen, ob der 'ImportError' durch das' setup.py' ausgelöst wird, das sich im aktuellen Verzeichnis befindet und unterscheidet es von anderen Fällen. – Julian
Verwenden Sie also die zweite Option, die ich erwähnt habe. Sie wissen, welches Paket Sie importieren möchten (als letztes Mittel, extrahieren Sie es aus der 'ImportError'-Nachricht), und Sie können den aktuellen Verzeichnisnamen abrufen. Die Bedingung, nach der Sie suchen, entspricht dem Paket- und Verzeichnisnamen, der gleich ist, nein? – isedev