次のディレクトリ構造で、PEP 328をフォローしようとしています。
pkg/
__init__.py
components/
core.py
__init__.py
tests/
core_test.py
__init__.py
でcore_test.py
、私は、次のimport文を持っています
from ..components.core import GameLoopEvents
しかし、実行すると次のエラーが発生します。
tests$ python core_test.py
Traceback (most recent call last):
File "core_test.py", line 3, in <module>
from ..components.core import GameLoopEvents
ValueError: Attempted relative import in non-package
周りを検索すると、「__ init__.pyでも相対パスが機能しない」と「相対パスからモジュールをインポートする」が見つかりましたが、役に立ちませんでした。
ここで見逃しているものはありますか?
no module named myimports.foo
私がそれらを実行するときに取得し続けます。
cd
にPyImports
、実行python -m unittest tests.test_abs
たとえば、。
unittest
、プロジェクトを構造化するさまざまな方法にも非常に混乱していたため、モジュールの深い入れ子、相対インポートと絶対インポート(作業と非インポート)、および内部からの相対参照と絶対参照をカバーするこのかなり徹底的なサンプルプロジェクトを書きました。パッケージ、およびクラスのシングル、ダブル、およびパッケージレベルのインポート。私にとって正しいことを明確にするのに役立ちました!