[VSCode] Import *** could not be resolvdに対応

Pythonでインポートエラーが発生したとき、どうすればよいですか?

Pythonでインポートエラーが発生する原因はいくつかあります。たとえば、インポートするモジュールがインストールされていない、インポートするモジュールが正しいパスに存在していない、インポートするモジュールのバージョンが正しくない、インポートするモジュールが正しい名前で指定されていないなどです。

本記事では、Pythonでインポートエラーが発生した場合に、どのように解決すればよいかを説明します。

事象

VSCodeで波線が出て、こんなメッセージが表示される場合がある。

Import *** could not be resolvd

これは、インポートしようとしているモジュールが見つからない場合に発生する。

が、今回のケースでは動作はしているがVSCode側で見つけられないだけのパターン。

コードに波線が出っぱなしになっているのは他の問題点の見落としにもつながるため、気づいたら早々に対応しておきたい。

対応

まず、該当するImportがどこのライブラリを参照しているか確認する。

TERMINALからPythonを起動して、下記のとおり実行するとパスが確認できる。

% python3
Python 3.7.9 (v3.7.9:13c94747c7, Aug 15 2020, 01:31:08)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> print(django.__file__)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/__init__.py

そして、設定から

extra pathと入力して、Add itemから確認したパスを追加

これで警告表示はクリアされる。