Relativer Import - Wie?
Verfasst: Donnerstag 8. November 2007, 14:36
Hallo zusammen,
seit einiger Zeit programmiere ich begeistert in Python und habe mir eine Menge bereits Klassen erstellt.
Diese liegen in meinem Projekt in Eclipse unter /src/lib.
Da sich später verschiedene Programme diese Klassen teilen müssen, erstelle ich für jedes Programm einen eigenen Ordner. Meine Verzeichnisstruktur ist also derzeit folgende:
./lib/__init__.py
./lib/class1.py
./project1/code.py
In meinem Programm code.py will ich jetzt die class1.py importieren, das klappt auch wenn ich aus Eclipse raus starte mit "from lib import class1", aber von Kommandozeile kennt er das dann nicht mehr.
Ich habe nachgelesen und gefunden, dass man auch relative Imports machen kann, aber das funktioniert nicht so recht:
in code.py:
from ..lib import class1
und es folgt dieser Fehler:
ValueError: Attempted relative import in non-package
Es kommt noch in keiner der Dateien __main__ vor (dann soll dieser Fehler wohl auftreten).
Wie könnte ich meine class1 denn sonst noch reinholen?
Danke für Tipps,
Grüße,
moadin
seit einiger Zeit programmiere ich begeistert in Python und habe mir eine Menge bereits Klassen erstellt.
Diese liegen in meinem Projekt in Eclipse unter /src/lib.
Da sich später verschiedene Programme diese Klassen teilen müssen, erstelle ich für jedes Programm einen eigenen Ordner. Meine Verzeichnisstruktur ist also derzeit folgende:
./lib/__init__.py
./lib/class1.py
./project1/code.py
In meinem Programm code.py will ich jetzt die class1.py importieren, das klappt auch wenn ich aus Eclipse raus starte mit "from lib import class1", aber von Kommandozeile kennt er das dann nicht mehr.
Ich habe nachgelesen und gefunden, dass man auch relative Imports machen kann, aber das funktioniert nicht so recht:
in code.py:
from ..lib import class1
und es folgt dieser Fehler:
ValueError: Attempted relative import in non-package
Es kommt noch in keiner der Dateien __main__ vor (dann soll dieser Fehler wohl auftreten).
Wie könnte ich meine class1 denn sonst noch reinholen?
Danke für Tipps,
Grüße,
moadin