【VSCode】IntelliCodeがアクティブにならないと思ったら仮想環境の参照先が違った
発生した問題
VSCode起動時に以下のようなエラーメッセージが出てきました。
申し訳ございません。Python の IntelliCode サポートのアクティブ化で問題が発生しました。
詳細については、"Python の言語サポート" および "VS IntelliCode" の出力ウィンドウをご確認ください。
Visual Studio IntelliCodeはすごく賢い補完機能です。
これの有無でコーディングの効率がかなり変わってくるので、アクティブになってくれないと非常に困ります。
結論
原因
プロジェクトフォルダの名前を一度変更したためだと思われる。(未確定)
対処
フォルダごと移動、仮想環境を作り直す。
環境
- Windows10
- エディタ : VSCode
- Pythonのバージョン : 3.10.2
- 環境管理 : pipenv, pyenv
やったこと
再起動
とりあえずVSCode、PCを再起動してみました。
変化なしです。
出力を見てみる
エラーメッセージで言われたとおり出力ウィンドウを見てみます。
出力ウィンドウは表示 > 出力 で表示できます。
Language server is set to "Default". Pylance is used as current language server.
Acquiring model
Acquiring model 'intellisense-members-lstm-pylance' for python
Querying IntelliCode service for available models.
vs-intellicode-python was passed a model: {}.
Cached model is up to date.
Activating Python extension
Error while activating Python: {"errno":-4058,"code":"ENOENT","syscall":"scandir","path":"C:\\Users\\user_name\\.virtualenvs\\virtualenv_name\\Scripts"}
# 関係のありそうな箇所
[ERROR 2022-2-14 14:32:9.496]: Python Extension: interpreterManager.refresh [Error: ENOENT: no such file or directory, scandir 'C:\Users\user_name\.virtualenvs\virtualenv_name\Scripts'] {
errno: -4058,
code: 'ENOENT',
syscall: 'scandir',
path: 'C:\\Users\\user_name\\.virtualenvs\\virtualenv_name\\Scripts'
}
path
にpipenvで管理している仮想環境が参照されているようです。
(virtualenv_nameとなっている箇所)
なぜか参照先が現在の仮想環境とは異なっていました。
おそらく一度フォルダ名を変更したためだと思われます。
対処
仮想環境を作り直しても path
が変更されず、変更方法もわかりません。
かなり強引ですが、手っ取り早くフォルダごと移動しました。
pipenvで環境の管理をしている場合、 Pipfile.lock
か Pipfile
を参照してパッケージをインストール、仮想環境を作成することが出来るので仮想環境のリセット自体は非常に楽です。
# pipfileを参照してインストール
pipenv install
# pipfile.lockを参照してインストール
pipenv sync
無事アクティブ化出来ました。
反省
- 管理しにくいのでプロジェクトフォルダ直下に仮想環境用のフォルダが作成されるように変更する。
- プロジェクトフォルダの名前を安直に変更しない。
- 問題起きるだろうなーと思いつつプロジェクトフォルダ名を変更したのがそこそこ前だったので、今更影響が出るとは思いませんでした。
Author And Source
この問題について(【VSCode】IntelliCodeがアクティブにならないと思ったら仮想環境の参照先が違った), 我々は、より多くの情報をここで見つけました https://qiita.com/NasuPanda/items/39fd793ce8c6da21e1b4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .