これは私のプロジェクトの構造(問題を説明するための単なる一例)である。Pythonの絶対インポート行を短くするには?
.
├── hello_world
│ ├── __init__.py
│ └── some
│ └── very_nested
│ └── stuff.py
└── tests
└── test_stuff.py
(py.test
用)test_stuff.py
ファイル:
from hello_world.some.very_nested.stuff import Magic
from hello_world.some.very_nested.other_stuff import MoreMagic
def test_magic_fact_works():
assert Magic().fact(3) == 6
# ...
は、インポートラインを作るためにどのようにどのような方法があります短い?実際のプロジェクトでは長すぎます。
たとえば、これはいいだろうが、それは動作しません:)
import hello_world.some.very_nested as vn
from vn.stuff import Magic
from vn.other_stuff import MoreMagic
私は相対的な輸入品を使用することはできませんが(私は仮定)テストがパッケージ内ではありませんbeucase。私はそれらを動かすことができましたが、プロジェクトの構造を変えずに可能ですか?
パッケージスタックの上にある有用な名前を集約するために '__init __。py'ファイルを使用しないのはなぜですか? – jonrsharpe
これは今まで私に迷惑をかけているとは言えません。 PyCharmを使用すると、折り畳まれています。 – wim
'from vn.stuff import Magic'の代わりに' Magic = vn.stuff 'を使うこともできます。同じ効果のための魔法。 – wim