Also ich habe diese Python-Sache, die eine Datei verarbeiten muss.Was ist eine sehr einfache Art, ein Python-Projekt zu strukturieren?
Zuerst war es:
my_project/
├── script.py
Und ich würde es einfach mit python script.py file.csv
laufen.
Dann wurde es und wurde:
my_project/
├── script.py
├── util/
│ └── string_util.py
├── services/
│ └── my_service.py
(Es gibt eine leeres __init__.py
in jedem Verzeichnis)
Aber jetztmy_service.py
möchten string_util.py
verwenden und es ist so verdammt nicht einfach, wie man das schön macht.
würde Ich mag from ..util import string_util
tun in my_service.py
(die in script.py
mit from services import my_service
importiert wird), aber das funktioniert nicht mit python script.py
seit my_service
‚s __name__
ist dann nur services.my_service
(und ich bekomme die Attempted relative import beyond toplevel package
)
kann ich
cd ..
undpython -m my_project.script
, aber das scheint so unnatürlich und wäre wirklich schlecht, es in die README für die Anweisungen, wie man das ausführen.Momentan löse ich es mit dem hässlichen
sys.path.append()
Hack.
Welche anderen Optionen habe ich?
Ich kann meine Meinung teilen, aber es wird als Antwort veröffentlicht werden. Ich weiß, was du denkst. – idjaw