VSCodeでPythonのインタプリタが設定されていなかったりすると、正常にインテリセンスが機能しない場合があるので、個人的な備忘録として残しておきたいと思います。
複数のプロジェクトが入ったフォルダを開いた際に、ワークスペースごとにPythonインタプリターを設定しつつ、それ以外は共通のユーザ設定が利用されます。
VSCode共通のユーザ設定
VSCodeのユーザ設定を行っておきます。
Code->基本設定->Settings->settings.jsonで設定を開きます。
{
"editor.formatOnType": true,
"editor.formatOnPaste": false,
"editor.formatOnSave": false,
"window.zoomLevel": 0,
"python.jediEnabled": false,
// "azureFunctions.showProjectWarning": false,
// "javascript.suggest.completeFunctionCalls": true,
"python.terminal.activateEnvironment": false,
// "python.pythonPath": "python",
"python.venvFolders": [
".venv"
]
}
python.pythonPathとpython.venvFoldersのどちらで設定するかは用途によって使い分ける感じになりそうです。
また過去にフォルダを開いていると.vscode/settings.jsonが出来ておりそちらが優先されてしまうので、設定を変えたい/その設定がもう不要の場合は該当ファイルを削除しても良いでしょう。
フォルダを開いた時に.vscode/settings.jsonがない場合はユーザ設定をベースに新規に作成されるようです。
VSCodeのワークスペース設定
VSCodeからフォルダを開く前に、Python仮想環境とワークスペースの設定を用意しておきます。
ユーザ設定に記述された設定を流用する場合はこちらの設定は不要です。
Python仮想環境の有効化
プロジェクトにPython仮想環境を用意しておきます。
pylintと関連モジュールを入れておかないと「Unable to import 'xxxxx'pylint(import-error)」や「unresolved import 'xxxxx'Python(unresolved-import)」などのエラーが出るのでインストールしておきます。
python3 -m venv .venv
. .venv/bin/activate
pip install pylint
pip install -r requirements.txt
ワークスペースごとの設定
プロジェクトフォルダに.vscode/settings.jsonを用意し、ワークスペース専用の設定を記述します。
{
"python.pythonPath": ".venv/bin/python3",
"python.venvFolders": [
".venv"
]
}
準備ができたらVSCodeでフォルダを開き、そのあとにPythonプロジェクトフォルダをワークスペースに追加すると設定が有効になります。
(メニューのファイル->フォルダーをワークスペースに追加)
参考情報
User and Workspace Settings
Using Python environments in VS Code
Python settings reference