これはかなり単純な問題であり、私は何か信じられないほど明白なものを見逃していると確信していますが、この苦境への答えは今や数時間にわたってわかりません。Python相対インポートでパッケージを見つけることができません
私のプロジェクトのディレクトリ構造は次のようになります。ここに私の命名規則とディレクトリ構造上の脇
-PhysicsMaterial
-Macros
__init__.py
Macros.py
-Modules
__init__.py
AvgAccel.py
AvgVelocity.py
-UnitTests
__init__.py
AvgAccelUnitTest.py
AvgVelocityUnitTest.py
__init__.py
批判、私は相対的な輸入品を使用することができるように見えることはできません。
ValueError: Attempted relative import in non-package
を私はセットアップ私ののinitファイルのすべてを持っているので:しかし、私は入れません
from .Modules import AvgAccel as accel
:私は、相対インポートにAvgAccelUnitTest.pyでテストするモジュールのファイルをしようとしています私の構造全体に渡って、そして私もトップディレクトリを私のPYTHONPATHに追加しました、私は困惑しています。なぜPythonはパッケージを解釈せず、ファイルを正しくインポートしないのですか?
@ Brendan Abel情報をいただきありがとうございます。さらに調査をしたところ、全く同じ結論に達しました。最終的には、sys.path.appendを使用して絶対インポートを実行しました。ディレクトリ内でモジュールを再配置するつもりはないので、さらに気にする必要はありません。これは実際に私が必要とした関数デコレータを含む別のインポートの問題も解決します。 –
他のモジュールがコマンドラインで実行しているのと同じモジュールをインポートしても、問題が発生する可能性があります。 –
私はそれに来るときに私はその橋を渡るだろうと思う。私はそれまでにもっと良い解決策を用意しています。これは単なる趣味のプログラムであり、出荷する意図はほとんどないため、大丈夫になると思います –