1. ホーム
  2. python

[解決済み] __init__.py でも「非パッケージで相対的なインポートを試みた」を修正する方法

2022-01-28 23:18:39

質問

をフォローしようとしています。 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 を使用しても相対パスが機能しない "と" 相対パスからモジュールをインポートする "しかし、それらは役に立ちませんでした。

何か見落としていることはないでしょうか?

解決方法は?

はい、パッケージとして使っていないんですね。

python -m pkg.tests.core_test