問題タブ [relative-import]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 「トップレベル パッケージを超えた相対インポートの試み」を見つけるためのベスト プラクティス
"attempted relative import beyond top-level package"
インポートに例外処理を含めて、一般的なエラーを絞り込みたいと思います。
Django のテストでは、自分DjangoProject/tests.py
自身に関連するインポートを記述しました ( tests.py
)。各テストファイルを実行するデフォルトunittests.py
は、DjangoProject フォルダーも含むルートフォルダーにあります。
attempted relative import beyond top-level package
をユニットテストに追加した瞬間に
エラーが発生したDjangoProject/tests.py
ため、それがインポートに起因することは明らかでした。try/except を使用すると、少し明確なエラーを書くことができたので、なぜ、どのファイルがエラーを引き起こしたのかを推測する必要はありません。
今私のコードは次のようになります:
そして、最初にメッセージを投げました:
これは意味がありviewsfunctions
、内部のモジュールと同様に役立ちますDjangoProject
。私は行を次のように置き換えました:from DjangoProject.viewsfunctions import *
次のエラーは次のとおりです。
そして、これはまさに私の問題です。これは何でもかまいません。pdbするだけで、それを追跡できfrom .. import PoM
ます(モジュールPoM
は最上位フォルダーに関連していますが、同じフォルダーでtests.py
の実行に関連しているため)unittests.py
この場合、わずか数回のインポートで比較的迅速に絞り込むことができますが、より適切な例外メッセージを記述したり、エラーが実際に発生したインポート行でより多くの情報を提供したりする方法はありますか?