python 3での相対インポートについてはすでにかなりの質問があるようですが、それらの多くを試しても、問題の答えがまだ見つかりませんでした。ここに質問があります。
以下に示すパッケージがあります
package/
__init__.py
A/
__init__.py
foo.py
test_A/
__init__.py
test.py
そして私はtest.pyに1行あります:
from ..A import foo
今、私はのフォルダにいてpackage
、実行します
python -m test_A.test
メッセージをもらいました
"ValueError: attempted relative import beyond top-level package"
しかし、私がの親フォルダにいるpackage
場合、たとえば次のように実行します。
cd ..
python -m package.test_A.test
すべて順調。
私の質問は
、私がのフォルダーにいるときにpackage
、test_Aサブパッケージ内のモジュールをとして実行するtest_A.test
と、私の理解に基づいて、..A
まだpackage
フォルダー内にある1レベルだけ上がるため、メッセージにと表示されますbeyond top-level package
。このエラーメッセージの原因は何ですか?