適切な相対インポート:「モジュールをインポートできません」質問する

適切な相対インポート:「モジュールをインポートできません」質問する

私のプロジェクトは次のように構成されています:

.
└── myapp
    ├── app.py
    ├── models
    │   ├── hello.py
    │   └── world.py
    └── requirements.txt

helloと の2 つのモデルがあります。両方のモデルは、次のようにインポートした場所worldから使用されます。app.py

from models.hello import Hello
from models.world import World

しかしworld、 も使用する必要がありますhello。 私はこれを で試しましたworld.py:

from models.hello import Hello

上記は、アプリを実行すると技術的には機能しますが、VSCode の Python 拡張機能によって次のエラーが発生します。

E0401:Unable to import 'models.hello'.

同じディレクトリからサブモジュールをインポートする適切な方法は何ですか? VSCode でこのエラーを回避するにはどうすればよいですか?

ベストアンサー1

受け取ったエラーは、 という名前の Python リンターによって報告されたものですpylint。したがって、問題は実際には vscode 拡張機能に固有のものではありません。

解決策は2つあります。

  1. .envプロジェクトディレクトリにvapeを使用してファイルを追加してみてくださいPYTHONPATH=./myapp。これにより、pylintにモジュールの場所が通知されます。

  2. myappまたは、 vscode で親ディレクトリを開く代わりに、vscode でフォルダーを直接開きます。

おすすめ記事