問題タブ [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.

0 投票する
1 に答える
499 参照

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

この場合、わずか数回のインポートで比較的迅速に絞り込むことができますが、より適切な例外メッセージを記述したり、エラーが実際に発生したインポート行でより多くの情報を提供したりする方法はありますか?