【202106追記】VSCode April 2021 でPython仮想環境の自動アクティベートがうまくいかなくなったら
【20210612追記】前に書いていた記事では、VSCode 立ち上げ時にターミナルも立ち上がっていた場合に、自動アクティベートがされないことがありました。より確実に自動アクティベートする方法がわかったので追記します。
settings.json
に書くのは、次の内容だけでいいです。前の記事に書いていた、terminal.integrated
に関する設定は削除してかまいません。
"python.pythonPath": ".venv\\Scripts\\python.exe",
"python.terminal.activateEnvInCurrentTerminal": true,
1行目は、仮想環境のあるパスの指定です。2行目は、「Python の拡張機能がアクティベートされたときに、そのときに開いているターミナルで仮想環境をアクティベートするかどうか」の指定です。
このように設定すると、VSCode を立ち上げて Python のファイルを開けば、VSCode は Python の拡張機能をアクティベートしようとします。そのとき、上の設定により、ターミナルが開いている場合は、仮想環境のアクティベートもやってくれます。また、その後、ターミナルを終了して再度立ち上げたときも、仮想環境のアクティベートを自動でやってくれます。
これで、アクティベートの処理は自動になるはずです。
以下は、以前に書いていた古い記事です。
Visual Studio Code April 2021 (version 1.56) のアップデートで、terminal.integrated.defaultProfile.<platform>
が導入され、terminal.integrated.shell
や terminal.integrated.shellArgs
が非推奨となりました。
僕は今まで、VSCode でターミナルを立ち上げたら自動的に仮想環境がアクティベートされるように、.setting.json
で次のようにしていました。(python.pythonPath
の設定ではうまく立ち上がらないときがあったので)
"terminal.integrated.shellArgs.windows": [
"-NoExit", "-Command", "./.venv/Scripts/activate"
]
April 2021 のアップデートで terminal.integrated.shellArgs
が非推奨となったので、これではうまくいかないようになりました。新しい書き方に対応するため、次のように書き換えます。
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"args": [
"-NoExit",
"-Command",
"./.venv/Scripts/activate"
],
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell"
これで今までと同じことができるようになりました。
他にも、統合ターミナルを立ち上げたときに何か処理をするようにしていた人は、同様の書き換えをしましょう。
Discussion