VSCode与Jupyter Notebook:实现选中Kernel自动激活虚拟环境
在VSCode的Jupyter Notebook里自动激活对应虚拟环境的方案
目前VSCode确实没有像jupyter.terminal.activateEnvironment这种现成配置直接实现这个需求,但有两种可行的办法:
方法一:给终端配置加自动激活逻辑
- 按
Ctrl+,打开设置,搜索terminal.integrated.profiles,找到你常用的终端(比如Windows的PowerShell、Linux/macOS的bash) - 编辑终端的启动参数,加入自动激活虚拟环境的命令。如果是固定路径的虚拟环境(比如项目根目录下的
.venv),PowerShell可以这么写:
要是想动态对应当前Notebook的kernel,得先通过Jupyter命令获取kernel的环境路径再激活。比如bash里可以写:-NoExit -Command "if (Test-Path '${workspaceFolder}/.venv/Scripts/Activate.ps1') { & '${workspaceFolder}/.venv/Scripts/Activate.ps1' }"
不过这个得提前知道kernel的名字,或者写个小脚本自动识别当前Notebook用的kernel。bash -c "source \$(jupyter kernelspec list --json | jq -r '.kernelspecs | .\"你的kernel名称\" | .spec.argv[0] | dirname')/../bin/activate; exec bash"
方法二:先激活环境再注册kernel(新手推荐)
这个方法更直观,不容易出问题:
- 先开个终端,手动激活你想用的虚拟环境:Windows用
.venv\Scripts\activate,Linux/macOS用source .venv/bin/activate - 在激活的环境里安装ipykernel并注册kernel:
pip install ipykernel && python -m ipykernel install --user --name=自定义kernel名 - 之后在VSCode里选这个注册好的kernel,从这个Notebook窗口打开新终端时,就会自动处于该虚拟环境里了——因为Notebook的父进程是激活环境后的shell,终端会继承环境变量。
内容的提问来源于stack exchange,提问作者BB3C
相关产品推荐
相关产品推荐

