VSCode如何在Notebook中使用Python_VSCode Notebook中Python使用思路

秋雪小哥_8056

秋雪小哥_8056

2026-04-09

876人浏览

原创

VSCode Notebook 不读取 python.defaultInterpreter 配置,而是依赖 Jupyter 内核注册表;需通过内核选择器切换并确认 sys.executable 路径匹配目标环境,必要时运行 python -m ipykernel install 注册内核。

vscode如何在notebook中使用python_vscode notebook中python使用思路

为什么 python.defaultInterpreter 在 Notebook 里不生效?

VSCode Notebook 的 Python 内核和普通 Python 文件用的不是同一套启动逻辑。即使你设置了 python.defaultInterpreter,Notebook 默认仍会尝试从已注册的 Jupyter 内核列表中选一个(比如 Python 3.11 (conda)),而不是直接读取该配置项。

真正起作用的是内核注册状态——VSCode 启动时扫描本地环境并生成内核列表,Notebook 下拉菜单里显示的每一项都对应一个 kernel.json 文件。你改配置,它不刷新内核列表;你换解释器路径,它也不自动重注册。

  • 检查当前生效的内核:点击 Notebook 右上角内核名称(如 Python 3.11),看弹出列表中哪个被打了勾
  • 手动触发内核刷新:Ctrl+Shift+P → 输入 Python: Refresh Kernel List,再重启 Notebook 标签页
  • 如果目标环境没出现,说明它没被 Jupyter 识别到:在该环境中运行 jupyter kernelspec install-self(旧版)或 python -m ipykernel install --user --name myenv --display-name "Python (myenv)"

如何让 Notebook 使用 conda/virtualenv 中的包?

核心问题不是“能不能用”,而是“用的是哪个内核”。哪怕你在 VSCode 设置里指定了 con核路径,Notebook 仍可能加载系统 Python 的内核,导致 import torch 报错。

验证方式很简单:在 Notebook 第一个 cell 里运行:

import sys; print(sys.executable)

输出路径必须和你期望的环境一致(比如 /miniconda3/envs/myproj/bin/python)。如果不是,说明内核没对上。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 不要依赖“Python: Select Interpreter”命令来切换 Notebook 环境——它只影响普通 .py 文件
  • 必须通过 Notebook 右上角内核选择器切换,并确认所选内核名称包含你环境的标识(如 (myenv))
  • 若 conda 环境安装了 ipykernel 但未注册,运行 conda activate myenv && python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
  • 卸载旧内核用:jupyter kernelspec uninstall myenv

ModuleNotFoundError 出现在 Notebook 却不在终端里?

典型现象:你在终端激活了 myenv,pip list 能看到 fastai,但在 Notebook 里 import fastai 报错。这几乎 100% 是内核路径和当前 shell 环境不一致导致的。

Jupyter 内核启动时会固化 PYTHONPATH、sys.path 和环境变量快照,不会继承你 VSCode 终端里的 conda activate 状态。

  • 最稳妥的做法:所有依赖都在目标环境中用 pip install 或 conda install 显式安装,而不是靠 PYTHONPATH 注入
  • 避免在 Notebook 里写 sys.path.append("../lib") —— 这容易在导出为脚本或分享时失效
  • 如果必须动态加路径,优先用 pathlib.Path(__file__).parent.parent / "lib" 替代相对字符串,更健壮

为什么修改了 settings.json 但 Notebook 还是用错内核?

VSCode Notebook 不读取 python.defaultInterpreter,也不读取工作区级的 python.defaultInterpreter。它只认内核注册表 + 当前打开文件夹的 .ipynb 关联上下文。

一个常见误操作:你在用户设置里改了 python.defaultInterpreter,以为整个 VSCode 都会跟着变——其实 Notebook 完全无视它。

  • 工作区设置中的 python.defaultInterpreter 对 Notebook 无效,别白费劲
  • 真正要配的是 jupyter.kernelspecsPath(极少需要)或直接管理内核注册本身
  • 多项目混用时,建议每个文件夹下放一个 .env 文件,并确保对应内核已用 --user --name xxx 独立注册,避免命名冲突
  • 内核名称重复会导致 Notebook 随机选一个——检查 jupyter kernelspec list 输出,删掉冗余项

Notebook 的 Python 行为本质是 Jupyter 内核行为,VSCode 只是前端容器。所有“为什么没生效”的疑问,最终都要落到“这个内核是不是我想要的那个进程”上。路径、包、环境变量,全是内核启动那一刻决定的,不是 VSCode 设置决定的。

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2215

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3522

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1176

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

4059

7

pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

2023.10.09

3290

5

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

2024.12.20

7503

6

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

2024.12.23

9142

11

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

2025.07.23

4747

16

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1838

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程