Seite 1 von 1
import schlägt fehl
Verfasst: Donnerstag 13. Februar 2014, 20:40
von Stephan12
Hallo,
ich habe eine Datei namens readOptions.py in einem Ordner, der nicht der
Standardpythonordner ist.
import readOptions schlägt fehl mit ImportError: No module named readOptions
Was kann da los bzw. der Grund sein?
Re: import schlägt fehl
Verfasst: Donnerstag 13. Februar 2014, 20:44
von darktrym
Entweder legst das so hin, dass es auch lokal gefunden wird oder du manipulierst den Suchpfad.
Kann auch an der IDE liegen.
Re: import schlägt fehl
Verfasst: Donnerstag 13. Februar 2014, 20:51
von Stephan12
darktrym hat geschrieben:Entweder legst das so hin, dass es auch lokal gefunden wird oder du manipulierst den Suchpfad.
Kann auch an der IDE liegen.
Ich bin noch Python Greenhorn...
Was heißen die beiden Optionen im Detail?
Re: import schlägt fehl
Verfasst: Donnerstag 13. Februar 2014, 20:51
von cofi
Was da los sein kann? Es gibt keine Datei namens "readOptions.py" im Suchpfad. Das Tutorial sagt dazu folgendes:
http://docs.python.org/2/tutorial/modul ... earch-path
Gehoert die Datei zu einem Projekt (so hoert sich das Modul jedenfalls an), dann sollte sie auch in dem Projekt (d.h. im selben Ordner) liegen.
Re: import schlägt fehl
Verfasst: Donnerstag 13. Februar 2014, 21:44
von Stephan12
ich habe jetzt ein Projekltverzeichnis definiert,
wo das aufgerufene und das aufrunfende Skript drin sind,
aber es funktioniert immer noch nicht.
Habe dann im Python Path manager den Pfad ebenfalls angegeben.
Geht immer noch nicht.
Kann es sein, daß Python nicht damit umgehen kann,
wenn das zu importierende und das importe Skript auf einer anderen Partition
als die Python-Programmdateien liegen?
Re: import schlägt fehl
Verfasst: Donnerstag 13. Februar 2014, 22:23
von BlackJack
@Stephan12: Auf welcher Partition das alles liegt ist Python egal. Cofi hat doch den relevanten Teil der Dokumentation verlinkt. Python sucht bestimmte Pfade nach einem Modul ab und in so einem Pfad müssen Module dann halt liegen. Also muss man sie entweder in einem Pfad ablegen der schon in den Pfaden enthalten ist, oder den Pfad in dem das Modul liegt zu den Suchpfaden hinzufügen.
Man kann auch Code schreiben der den Pfad des Moduls ermittelt in dem der Code ausgeführt wird. Jedes (selbst geschriebene) Python-Modul hat auf Modulebene `__file__` definiert welches den Dateinamen/Pfad des Moduls enthält. Da kann man mit den entsprechenden Funktionen aus `os.path` den Pfad vom Dateinamen trennen und den Suchpfaden hinzufügen um Module relativ zu dem Modul importieren zu können.