Importsystem Verständnisfrage
Verfasst: Dienstag 8. Dezember 2015, 09:16
Hallo zusammen,
ich habe mein erstes größeres Projekt begonnen und möchte folgende häufig gebräuchliche Projektstruktur in einem virtualenv realisieren:
Als Testmodul verwende ich py.test. Ich möchte natürlich folgendes beides im Terminal von project root aus tun können:
Ich habe diverse Möglichkeiten an relativen und absoluten imports ausprobiert um myimport1.py in myapp.py einzubinden, aber entweder beschwert sich py.test oder python, egal wie ich es mache. Dann bin ich in einem Post darauf gestoßen, dass Guido the BDFL diese Projektstruktur angeblich als Antipattern betrachtet, da seiner Meinung nach myapp.py nicht mit anderen Modulen im selben Verzeichnis sein sollte.
Könnte mir das jemand etwas erläutern, weshalb das schlecht ist? Die Alternativen myapp.py nach project root oder in ein separates Verzeichnis mit nur dieser Datei zu verschieben erscheinen mir beide auch nicht sonderlich elegant, oder?
ich habe mein erstes größeres Projekt begonnen und möchte folgende häufig gebräuchliche Projektstruktur in einem virtualenv realisieren:
Code: Alles auswählen
myapp/
setup.py
myapp/
__init__.py
myapp.py
myimport1.py
...
tests/
test_myapp.py
...Code: Alles auswählen
$> python myapp/myapp.py
$> py.test tests/test_myapp.pyKönnte mir das jemand etwas erläutern, weshalb das schlecht ist? Die Alternativen myapp.py nach project root oder in ein separates Verzeichnis mit nur dieser Datei zu verschieben erscheinen mir beide auch nicht sonderlich elegant, oder?