import schlägt fehl

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Stephan12
User
Beiträge: 24
Registriert: Mittwoch 29. Januar 2014, 14:52

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?
Benutzeravatar
darktrym
User
Beiträge: 785
Registriert: Freitag 24. April 2009, 09:26

Entweder legst das so hin, dass es auch lokal gefunden wird oder du manipulierst den Suchpfad.
Kann auch an der IDE liegen.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Stephan12
User
Beiträge: 24
Registriert: Mittwoch 29. Januar 2014, 14:52

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?
Benutzeravatar
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.
Stephan12
User
Beiträge: 24
Registriert: Mittwoch 29. Januar 2014, 14:52

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?
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.
Antworten