Ich möchte für mein Projekt diese Struktur haben:Python Importe Struktur
requirements.txt
README.md
.gitignore
project/
__init__.py
project.py
core/
__init__.py
base.py
engines/
__init__.py
engine1.py
engine2.py
utils/
__init__.py
refine_data.py
whatever.py
Die Anwendung wird von project/project.py
laufen. Ich bekomme jedoch ständig Importfehler, wenn ich relative oder absolute Importe verwende.
Beiden Motoren müssen von project.core.base
importieren, die utils von project.core.base
als auch importieren müssen, und project.py
(die Hauptdatei RAN) muss in der Lage sein, von engines
zu importieren.
Absolute Importe nicht funktionieren:
# engines/engine1.py
from project.core.base import MyBaseClass
, die den Fehler verursacht:
ImportError: No module named project.core.base
Aber wenn ich einen relativen Import stattdessen versuchen
# engines/engine1.py
from ..core.base import MyBaseClass
ich:
ValueError: Attempted relative import beyond toplevel package
Ich habe andere Projekte auf Github ähnlich gesehen, aber das scheint alle möglichen Probleme zu verursachen. Wie bekomme ich das zum Laufen?
Geschwisterpakete sollten in der Lage sein, nur voneinander zu importieren. So können Motoren einfach Kern importieren. – pvg