私はファイルを処理する必要があるこのpythonものがあります。Pythonプロジェクトを構築するための非常に簡単な方法は何ですか?
まずそれがだった:
my_project/
├── script.py
そして、私は単にpython script.py file.csv
でそれを実行します。
は、それが成長し、なった:
my_project/
├── script.py
├── util/
│ └── string_util.py
├── services/
│ └── my_service.py
(すべてのディレクトリに空__init__.py
があります)
しかし、今my_service.py
string_util.py
を使用したいと、それはそうですこれをうまくやり遂げる方法は簡単ではありません。
私は(from services import my_service
とscript.py
にインポートされます)my_service.py
でfrom ..util import string_util
をしたいだろうが、それはmy_service
さん__name__
以来python script.py
では動作しないことのみservices.my_service
である(と私はを取得しますAttempted relative import beyond toplevel package
)
私が行うことができます
cd ..
とpython -m my_project.script
しかし、それは非常に不自然に思え、これを実行する方法についてはREADMEに記載するのが本当に悪いです。今、私は醜い
sys.path.append()
ハックで解決しています。
その他のオプションはありますか?
私はこれに私のテイクを共有することができますが、答えとして投稿されます。私はあなたの考えを知っています。 – idjaw