jupyter_notebook_config.py不控制python解释器路径,仅配置web服务参数;真正指定解释器需通过ipykernel在目标conda环境中注册内核,生成含正确python.exe路径的kernel.json文件。

jupyter_notebook_config.py 里不能指定 python.exe 路径 —— 这个配置文件根本不读取或控制 Python 解释器位置。
它只管 Web 服务、端口、目录、认证等前端行为。内核(也就是真正跑代码的 Python 进程)由另一个机制管理:**kernel spec**(内核规格)。你看到的“Python 3”那个选项,背后是一个 JSON 文件,存放在 jupyter kernelspec list 显示的路径下,比如 C:Users
ameAppDataRoamingjupyterkernelspython3kernel.json。
所以,别在 jupyter_notebook_config.py 里找 python_path 或类似字段 —— 它不存在,写了也无效。
怎么让 Jupyter 用指定环境的 python.exe?
核心动作是:在目标 conda 环境里安装并注册 kernel。假设你有个环境叫 myenv,想让它出现在 Jupyter 的内核列表里:
- 先激活该环境:
conda activate myenv - 确保
ipykernel已装:pip install ipykernel(若没装) - 执行注册命令:
python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
这会在用户级 kernel 目录下生成一个以 myenv 命名的子目录,并把 kernel.json 里 argv 字段指向当前环境的 python.exe(比如 "C:\Users\xxx\anaconda3\envs\myenv\python.exe")。
为什么改 kernel.json 里的 python.exe 路径容易失败?
手动编辑 kernel.json 看似直接,但极易出错:
-
argv是数组,路径含空格必须加引号,Windows 下反斜杠要双写或用正斜杠,少一个字符就导致内核启动失败,报错Kernel starting failed - 路径硬编码后,环境迁移或重装 Anaconda 就失效,且不同用户/机器无法复用
- 如果环境被删除,Jupyter 仍显示该内核,但点击运行时卡在 “Connecting to kernel…”
如何确认当前 notebook 用的是哪个 python.exe?
在 notebook cell 里运行:
import sys print(sys.executable)
输出就是当前 kernel 实际调用的 python.exe 路径。别信左上角显示的 kernel 名字,它只是 display name,可能和实际路径不一致。
conda 环境删了,kernel 还在怎么办?
删掉残留的 kernel 规格即可:
- 查所有 kernel:
jupyter kernelspec list - 删指定 kernel:
jupyter kernelspec remove myenv(名字来自list输出) - 删完刷新页面,那个“Python (myenv)”就消失了
注意:不要手动删 kernels 目录下的文件夹,容易残留注册信息;一定要用 kernelspec remove 命令。
jupyter_notebook_config.py 上,是因为混淆了“服务配置”和“执行环境”的边界。Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











