Visual Studio Codeでライブラリやモジュールが could not be resolved になる時の対処法
Visual Studio Codeでライブラリやモジュールが could not be resolved になる時の対処法
ここでは、Visual Studio Codeでライブラリやモジュールが could not be resolved になる時の対処法を紹介します。
StartLabでDjangoを使ったアプリ開発を紹介していますが、稀にDjangoがエラーになってしまう場合があります。
これはVSCode(Visual Studio Code)で起こり得るエラーなので、VSCode上での対処法をご紹介します。

上の参考画像では、エラーの内容としてModuleNotFoundErrorが表示されていますが、
今回の事象が表示するエラーは、
Import “django” could not be resolved from source Pylance(report MissingModuleSource)
のようになることが多いです。

もちろんDjangoのインストールを忘れていたのであればエラーが発生しても理解が出来るのですが、
Djangoをインストールしていてもこの事象が起きる場合があります。

原因
この事象はVSCodeがモジュールを探す段階で発生している。
Pythonからはアクセスが出来ているが、VSCodeからそのモジュールに対してアクセスが出来ていない状態
原因としては上記のみです!
なので対処法としては、
VSCodeがDjangoモジュールを探せるように設定を追加してあげましょう。
今回はDjangoモジュールで紹介していますが、他のモジュールでも同様のエラーが発生する場合もありますので、その際はこの記事を参考にしてください。

Djangoモジュールのディレクトリ確認
まずはインストールしたDjangoがどこにあるのかを見てみましょう。
VSCodeのターミナルで対話モードに入ります。
対話モードの入り方は、
ターミナルで下記コマンド実行です。
【Windows】
python
【Mac / Linux】
python3

参考画像はWindows端末を使用しています。
ターミナルの左側に>>>が表示されていれば対話モードになっている状態です。
この>>>以降に処理を記載していきます。
まず import django と入力してEnterを押します。

次に、
print(django.__file__)
と入力してEnterを押します。
fileの前後には_(アンダーバー)が2つずつ必要なので注意してください。
実行するとDjangoモジュールの場所(ディレクトリパス)が表示されます。

上の参考画像では、
C:\Users\mk012\Desktop\sample\venv\lib\site-packages\django__init__.py
と表示されている部分がDjangoのディレクトリパスです。
このパスのsite-packagesまでをコピーしておきましょう。
参考ですと、
C:\Users\mk012\Desktop\sample\venv\lib\site-packages\
までですね。

VSCodeの設定追加
次にVSCodeの設定を行っていきます。
メニューバーから、
「ファイル」→「ユーザー設定」→「設定」を選んでください。
英語表記の場合は、
「Code」→「Preference」→「Settings」です。
設定(Settings)を開くと次のような画面になります。

画面上部の
「設定の検索」(英語表記の場合はsearch settings)
に
extra path
と入力しEnterを押してください。

検索を行うといくつか表示されますが、
今回使用するのは、
Python > Analysis: Extra Paths
の部分です。
Python > Analysis: Extra Paths の下の、
「項目の追加」(英語表記の場合はAdd Item)
をクリックしてください。

クリックすると、入力欄が表示されます。
ここに先程コピーしたDjanogのディレクトリパスを入力してください。
参考では、
C:\Users\mk012\Desktop\sample\venv\lib\site-packages\
でしたね。
入力したら「OK」をクリックしましょう。

Python > Analysis: Extra Pathsの下部に、先程入力したパスが表示されていますね。
このような表示になればOKです!

これでVSCodeが正しくDjanogモジュールを見付けることが出来るようになりました!
後は、ファイルの中でdjango部分の黄色の波線が消え、プロジェクトが実行できるか動作確認を行えば解決です。
厳密にはこの事象はエラーではないのですが、
VSCodeでのモジュールへのアクセス指定方法として覚えておくと、いざ問題が発生した時に落ち着いて対処できます。
折角なのでこの機会に身に付けておきましょう!

まとめ
・ Import “〇〇〇〇 ” could not be resolved from source Pylance(report MissingModuleSource) エラーはVSCodeの読み込みエラーが原因
・モジュールのディレクトリパスを、直接VSCodeに設定してあげる必要がある。
・Django以外のモジュールにも同様の対応が可能
もっとPythonを学習するなら…
「Python特化型」オンラインプログラミングスクール「StartLab」にはプログラミング未経験者でもOKのコースから、中級者向けのコース、資格対策プランなど学びたい内容に合わせたコースをご用意しています。
まずは無料カウンセリングから!コースの詳細は?自分に合っているコースはどれなのか?お気軽にご相談ください。
<コース紹介>
・プログラミング入門コース(難易度★☆☆☆☆)
・DX入門コース(難易度★★☆☆☆)
・機械学習コース(難易度★★★☆☆)