問題タブ [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 - Python がパッケージとモジュールを混同するのはなぜですか
ルート パッケージ内に 3 つのネストされたパッケージを含むプロジェクトがあります。
パッケージのインポートと使用に関しては、(一般的にPythonで-おそらくJava/Eclipseが正しく行う唯一のことです)多くの困難を抱えています。最近、次のように相対インポートを使用してスケートをすることができましたfrom .details import Details
: 現在のパッケージ/ディレクトリ内の詳細と呼ばれるモジュールから、「詳細」という名前のクラスをインポートします。プログラムにいくつかの新しい (壊れる可能性のある) 変更を追加しましたが、上記の同じ相対インポート行が機能しなくなりました。インタープリターは私のパッケージがモジュールであると考えているようです。そのため、代わりに絶対インポートを使用できません。
たとえば、インポートを次のように変更すると:
次のエラーが表示されます。
次のように、必要に応じて組み込みパッケージを上書きしようとさえしました
プロジェクトのパッケージ構造が正しく設定されていることには自信があります (上記の最初の例のように (ただし、より詳細に))。また、パッケージ、モジュール、相対インポートと絶対インポートの概念を理解していると確信しています。しかし、これは私が Python でマルチパッケージ プログラムを作成しようとするたびに私を悩ませる問題です。エラーを指摘したり、この永続的な問題を軽減するために実行できるアクションを提案したりしていただければ幸いです。