import problem

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
dijji
User
Beiträge: 2
Registriert: Mittwoch 7. April 2010, 14:27

Ich habe folgende Verzeichnisstruktur:

c:\project\
c:\project\__init__.py
c:\project\test.py
c:\project\deps\__init__.py
c:\project\deps\mod1\__init__.py
c:\project\deps\mod1\[...]
c:\project\deps\mod2\__init__.py
c:\project\deps\mod2\[...]

Die Verzeichnisse \deps\mod1 und \deps\mod2 enthalten externen Code, welchen ich in meinem Projekt verwenden möchte, aber nicht anpassen will:

In c:\project\test.py versuche ich nun ein

import deps.mod1

Das funktioniert im Normalfall auch. Allerdings enthält der Code in deps\mod1\ in diversen Dateien die folgende Zeile:

import mod2

Beim Ausführen von test.py bekomme ich dann den Fehler, dass mod2 nicht gefunden werden kann:

Traceback (most recent call last):
File "test.py", line 1, in <module>
import deps.mod1
File "C:\project\deps\mod1\__init__.py", line 1, in <module>
import mod2
ImportError: No module named mod2

Ist es möglich ohne Modifikation des gesamten Codes in deps\mod1 und deps\mod2 die Module mod1 und mod2 direkt aus c:\project\ zu importieren?

Danke für eure Hilfe!
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Du könntest relative imports nutzen oder den order deps in sys.path aufnehmen.

Aber muss diese Struktur denn sein?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
dijji
User
Beiträge: 2
Registriert: Mittwoch 7. April 2010, 14:27

Ich wollte diese Struktur, um den externen Code (alles in deps/) sauber von meinem eigenen zu trennen. Gibt es dafür ansonsten einen Weg, der mehr python-like ist? Oder wie mache ich das am besten?
Antworten