如何按VS Code文档启动继承conda环境变量的Jupyter内核?
关于VS Code中Conda环境关联Jupyter内核的问题解答
一、如何获取激活conda环境后的进程环境变量?
- Windows CMD:激活环境后执行
set,可重定向到文件保存:set > env_vars.txt - Windows PowerShell:激活环境后执行
Get-ChildItem Env:,导出文件用Get-ChildItem Env: | Export-Clixml env_vars.xml - Linux/macOS终端:激活环境后执行
env,重定向保存:env > env_vars.txt
二、此处的环境变量指哪一类?
这里指的是激活conda环境后当前shell进程的全量环境变量,包含三类:
- 系统/用户原本的环境变量
- conda激活时自动注入的变量(比如
PATH、CONDA_DEFAULT_ENV、CONDA_PREFIX) - 你通过
conda env config vars set配置的变量(即conda env config vars list返回的内容)
简单说就是激活环境后,当前终端里python能读取到的所有环境变量,不是单一类别。
三、如何用这些环境变量启动内核?
有两种实用方式:
- 手动启动时继承变量:
直接在激活conda环境的终端里运行内核启动命令,此时进程会自动继承当前环境变量。如果要从其他进程启动,先加载之前导出的环境变量再执行命令,比如PowerShell中:$envVars = Import-Clixml env_vars.xml foreach ($var in $envVars) { [Environment]::SetEnvironmentVariable($var.Name, $var.Value, "Process") } python -m ipykernel_launcher -f .\connection.json - 修改kernel spec配置文件:
找到对应conda环境的kernel spec文件(路径可通过jupyter kernelspec list查看,一般在{conda_env_path}\share\jupyter\kernels\{kernel_name}\kernel.json),在env字段添加需要的变量,示例:
这样VS Code启动该内核时会自动加载这些变量。{ "argv": [ "C:\\conda\\envs\\myenv\\python.exe", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "My Conda Env", "language": "python", "env": { "MY_CUSTOM_VAR": "my_value", "PATH": "C:\\conda\\envs\\myenv\\Scripts;{PATH}" } }
四、-f选项如何指定连接文件?
-f后的参数是Jupyter生成的连接配置文件路径,文件包含内核与前端通信的端口、密钥等信息:
- 手动测试时,先启动Jupyter Server,在
~/.jupyter/runtime/(Linux/macOS)或%APPDATA%\jupyter\runtime\(Windows)下找到类似kernel-xxxx.json的文件,执行:python -m ipykernel_launcher -f ~/.jupyter/runtime/kernel-1234.json - 若要让VS Code识别,更简单的方法是直接注册内核,无需手动处理连接文件(见下文步骤)。
五、让VS Code内核选择器识别内核的关键步骤
最省心的方式是直接在conda环境中注册内核:
- 激活目标conda环境:
conda activate myenv - 安装ipykernel(未安装时):
conda install ipykernel -y - 注册内核到Jupyter:
python -m ipykernel install --user --name myenv --display-name "My Conda Env" - 重启VS Code,打开.ipynb文件后就能在内核选择器中找到"My Conda Env"。
内容的提问来源于stack exchange,提问作者Stephen Frost
相关产品推荐
相关产品推荐

