Zunächst einmal: Es tut mir leid, ich weiß, dass es schon viele Fragen zu relativen Importen gab, aber ich habe einfach keine Lösung gefunden. Wenn möglich, würde ich gerne die folgende Verzeichnisstruktur verwenden:
myClass/
__init__.py
test/
demo.py
benchmark.py
specs.py
src/
__init__.py
myClass.py
Jetzt sind meine Fragen:
-
Wie importieren die Testdateien aus dem Paket richtig myClass.py?
-
Wie würden Sie das Paket von außen importieren, vorausgesetzt, Sie nehmen myClass als Submodul in libs/myClass oder include/myClass?
Bisher konnte ich keine elegante Lösung für dieses Problem finden. Soweit ich das verstehe Guidos Entscheidung sollte es möglich sein, Folgendes zu tun from ..src import myClass
aber dies führt zu einem Fehler:
ValueError: Attempted relative import in non-package
Das sieht so aus, als ob es myClass nicht als Pakete behandelt. Lesen der Dokumente :
Die __init__.py-Dateien sind erforderlich, damit Python die Verzeichnisse als Pakete behandeln kann;
Es scheint mir etwas zu fehlen, das angibt, wo die Skripte des Pakets sind, sollte ich .pth verwenden?