を使用して、トップレベルのパッケージを超えた相対インポートをしようとしましたコードをインポートする。参考までに、私はPython 3.6を使用しています。は、私はせいぜい相対的な輸入品、特にトップレベル・パッケージに関しては、それらに関するすべてのリンクを見てきましたが、私はまだ私の相対的を得て、トラブルのトンを抱えているのpython -m
私は自分のディレクトリでテストを実行したいディレクトリを持っています。私はすべてのモジュールパッケージをInputTests.pyという1つのファイルにインポートしたいと思います。ここに私のプロジェクトディレクトリのフォーマットです。
InputTests.pyの中で、私はモジュールをこのようにインポートしよう:
from .. import modules
私はエラーを取得する:
File "/Users/wfehrnstrom/Desktop/meeting_minutes/tests/InputTests.py",
line 2, in <module>
from .. import modules
ValueError: attempted relative import beyond top-level package<code>
しかし、私はコマンドを使用しています:python -m tests.InputTests
、これはおそらく通訳者に私のトップレベルのディレクトリからすべてを実行するように指示します。だから私は私の質問は、なぜ私の相対的なインポートステートメントは、私が上記のパッケージからこれを実行しているという事実を与えられて動作しないと思います。このスタックオーバーフローのポストは私が必要なものを細部に見えたが、そのソリューションは、-mを実行すると、私のために動作しません:How to do relative imports in Python?
また、このスタックオーバーフローの投稿でこれに矛盾があるように思われる:Relative importing modules from parent folder subfolder
後者のポストは、..と。 Pythonコマンドを実行する場所に基づいて変更しないでください。しかし、前者はそれがそうであると言います。これは非常に混乱しています。誰も相対輸入を明らかにし、この不一致を解決することはできますか?ありがとうございました。