Yani bir dosya işlemek için gereken bu python şey var. Bir python projesini yapılandırmanın çok basit bir yolu nedir?
Birincisi oldu:
my_project/
├── script.py
Ve ben sadece python script.py file.csv
ile çalıştırmak istiyorum.
Sonra büyüdü ve oldu:
my_project/
├── script.py
├── util/
│ └── string_util.py
├── services/
│ └── my_service.py
(her dizinde boş bir __init__.py
yoktur)
Ama şimdimy_service.py
string_util.py
kullanmak istiyorum ve o kadar var Bu kadar güzel değil nasıl basit bir lanet olsun.
I (from services import my_service
ile script.py
aktarılır) my_service.py
yılında from ..util import string_util
yapmak isterdiniz, ama bu my_service
'ın __name__
beri python script.py
ile çalışmıyor sonra sadece services.my_service
(ve ben olsun Attempted relative import beyond toplevel package
)
yapabileceğim
cd ..
vepython -m my_project.script
, ama bu çok doğal görünüyor ve nasıl çalıştırılacağı talimatlar için README içine koymak için gerçekten kötü olurdu.Şu anda çirkin
sys.path.append()
hack ile çözüyorum.
Başka hangi seçeneklerim var?
Bunu almamı paylaşabilirim, ancak yanıt olarak gönderilecektir. Bana ne düşündüğünü biliyorum. – idjaw