VS Code中如何让Jupyter Notebook使用与终端一致的虚拟环境并实现对应代码补全
VS Code中如何让Jupyter Notebook使用与终端一致的虚拟环境并实现对应代码补全
我完全懂你的困扰——终端里用虚拟环境跑脚本顺顺当当,到Jupyter Notebook里就找不到对应环境,好不容易弄出个kernel还绑定了全局Python路径,连代码补全都跟着乱套。别慌,咱们一步步把问题解决:
第一步:用虚拟环境自身注册Jupyter Kernel(核心解决路径错误问题)
你之前踩的坑是用全局的ipython来注册kernel,导致kernel默认绑定了全局Python路径。正确的姿势是让虚拟环境自己完成kernel注册:
- 先在终端激活你的虚拟环境:
source ~/envs/my-project-env/bin/activate - 在激活的环境里安装
ipykernel(Jupyter识别虚拟环境的必备依赖):pip install ipykernel - 用虚拟环境内的Python执行kernel注册命令(这步是关键!):
其中python -m ipykernel install --user --name=my-project-env --display-name="Python (my-project-env)"--display-name是给kernel起个好识别的名字,方便你在VS Code里快速找到它。
第二步:在VS Code中加载并选择正确的Kernel
- 按
Cmd+Shift+P输入Reload Window重载VS Code窗口(或者直接重启软件) - 打开你的
test.ipynb,点击右上角的「Select Kernel」,就能看到刚才注册的Python (my-project-env)了,选中它就搞定环境匹配问题!
第三步:让Pylance代码补全同步虚拟环境
你之前已经把虚拟环境的Python解释器添加到VS Code了,只需再确认两步:
- 按
Cmd+Shift+P输入Python: Select Interpreter,选中你添加的my-project-env对应的Python路径(也就是~/envs/my-project-env/bin/python) - 再次重载窗口,Pylance就会自动读取虚拟环境里的依赖包,给你精准的代码补全提示了。
(备选方案)修改已注册的错误路径Kernel
要是你之前已经用错误方法注册了kernel,不想重新操作,可以直接修改配置文件:
- 打开Mac上的kernel配置目录:
~/Library/Jupyter/kernels/my-project-env/ - 编辑里面的
kernel.json文件,把"argv"数组里的Python路径替换成虚拟环境的路径,示例如下:{ "argv": [ "/Users/你的用户名/envs/my-project-env/bin/python", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "Python (my-project-env)", "language": "python" } - 保存后重载VS Code,再选这个kernel就会指向正确的虚拟环境了。
这样操作下来,你的Jupyter Notebook就能和终端共用同一个虚拟环境,代码补全也能精准匹配环境内的依赖包啦~
备注:内容来源于stack exchange,提问作者Wassadamo




