18
8

More than 1 year has passed since last update.

VSCode Django Import xxx could not be resolved from source Pylance エラーの解決方法

Last updated at Posted at 2022-01-23

事象

プロジェクト作成、startappコマンド後、以下のエラーが発生した。
ようするに"django"関係がすべて読み込めていない。

Import "django.contrib" could not be resolved from source
Import "django.apps" could not be resolved from source
Import "django.db" could not be resolved from source
Import "django.shortcuts" could not be resolved from source

image.png
こんな感じで波線が出てしまう。

環境

Windows 10
Python 3.10.2
Django 4.0.1
venv利用あり

[2022/02/06] 対処方法まとめ2を追記

対処方法まとめ

  1. Pylance を Jedi に変える
  2. VSCodeにdjangoのモジュールを見つけられるよう設定する

1の方法でもエラーは出なくなりますが、"django.xx"の部分が色づいてくれません。
Pythonのコード補完はしれくれますが、django関係の保管はしてくれない状態です。
正直、Djangoを使うには扱いづらいので、【方法2】をおすすめします。
image.png

対処方法1:Pylance を Jedi に変える

Pythonの補完には通常Jediというものが使用されるようですが、自動で設定されていないようなので
手動で設定を行う。

まず仮想環境に入る。
仮想環境を設定してない方は無視してOK。
image.png

Visual Studio Code insiders(以降、VSCode)の表示→コマンドパレットを押下し出てきた入力欄に「>settings」と入力。
image.png
Open Workspace Settings(JSON)を選択。
この際、Open xxx Settings(JSON)がいくつかあるが、Open Workspace Settings(JSON)を選択する。

以下を記載する。

{
  "python.jediEnabled": true,
  "python.languageServer": "Jedi",
}

image.png
trueは小文字なので注意。
保存後、VSCodeを再起動し、エラーが解消したかどうかを確認する。

対処方法2:VSCodeにdjangoのモジュールを見つけられるよう設定する

PythonもDjangoもインストールしているのにJediがうまく動いてくれない。
そんなときはVSCodeがPythonファイルを正しく読み込めていないのかもしれない。
それを正しく設定する手順のご紹介。

まず仮想環境に入る。
仮想環境を設定してない方は無視してOK。
image.png

次にDjangoのインストール先を確認する。
VSCodeのターミナル→新しいターミナル→画面下部に出てきたターミナルに以下を入力してエンター。
python
image.png

コンソールが>>>に変わったらpythonの対話モードに入れたので、import djangoと入力エンター、続いてprint(django.__file__)と入力してエンター。
image.png

これでDjangoに関わる設定が、
C:\django\.venv\lib\site-packages\django\__init__.py
にあることがわかった。ただしdjango以外のモジュールも読み込ませることがあるため、VSCodeに設定させるのは、
C:\django\.venv\lib\site-packages
の部分になる。後で使うのでメモしておくこと。

続いてVSCodeの表示→コマンドパレットを押下し出てきた入力欄に「>settings」と入力。
image.png

[2023/03/18 修正]
Open User Settingsを選択。
この際、Open xxx Settingsがいくつかあるが、Open User Settingsを選択する。
文末に(JSON)とついていないことをよく確認する。

設定の検索extra pathと入力し、Python › Analysis: Extra Paths項目の追加を押下する。
image.png

パラメータを入力できるようになるので先ほどの、
C:\django\.venv\lib\site-packages
を入力し、OKを押下する。
image.png

入力後はこのような表示になっていればOK。
image.png

Djangoファイルに戻り、Pylanceのエラーが消えていることを確認する
image.png

お疲れ様でした。

参考

VSCode Python Extension "Downloading Microsoft Python Language Server" hangs
Visual Studio CodeでDjangoのライブラリが「Import XXX could not be resolved from source」になる時の対処法

18
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
8