venvで構築した仮想環境内にインストールしたパッケージがvscodeで認識されない問題の解決
記事の目的
標題の症状に対する解決策のメモ
症状
標題の通り。venvで仮想環境を構築し、仮想環境内でインストールしたパッケージをvscode内で使用しようとしたがModuleNotFoundErrorが発生してしまった。vscodeのインタープリターは仮想環境にあるPythonを指定している。
結論
vscodeがインストールしたパッケージを探しに行けるように設定する。
参考サイト
Visual Studio Codeでライブラリやモジュールが could not be resolved になる時の対処法 | Start Lab | Python特化の公式認定スクール
状況
- venvで仮想環境を構築
- 仮想環境を有効化し、仮想環境内で必要なパッケージをインストール
- vscodeでインタープリターを選択し、仮想環境のPythonへのパスを指定
- 2.でインストールしたパッケージをインポートするコードを作成したところ、"ModuleNotFoundError"が発生→問題発生
原因と対策
vscodeがインストールしたパッケージへのパスを見つけられていないことが原因。vscodeの設定にパッケージへのパスを追加することで解決する。
以下に手順を示す。
1. Powershell(PS)やコマンドプロント(CMD)でパッケージのパスを確認する。
PS、CMDでパスを確認し、ルートから「site-packages」までのパスをコピーしておく。
2. vscodeに上記パスを登録する。
「ファイル」→「ユーザー設定」→「設定」から設定画面を開く。
設定画面の「設定の検索」欄に「extra path」と入力する。
「Extra Paths」の「項目の追加」に先ほどコピーしたパスを貼り付け、「OK」を押す。
以上でパッケージへのパスがvscodeに認識されるようになる。