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?
import schlägt fehl
Ich bin noch Python Greenhorn...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.
Was heißen die beiden Optionen im Detail?
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
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.
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.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
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?
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?
@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.
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.