如何为Jupyter Notebook 配置使用虚拟环境中(virtualenv) 内核
日常使用 Jupyter Notebook 时,我一直依赖宿主机环境进行开发。后来为每个应用virtualenv建立了多套虚拟环境,其中为了隔离 web 开发相关依赖,在D:\play_web目录下创建了独立虚拟环境,但如果我想用jupyter notebook,默认是无法切换和启用虚拟环境的内核的。
经过一番尝试,我找到了一套简单有效的解决方案:通过安装依赖、注册内核,让 Jupyter 支持虚拟环境的自由切换。整个过程步骤清晰,且一次测试成功,现在整理成详细流程,供有类似需求的开发者参考。
核心原理:让 Jupyter "识别" 虚拟环境
Jupyter 本身不直接关联虚拟环境,需借助ipykernel组件搭建 "桥梁"------ipykernel能将虚拟环境的 Python 解释器与 Jupyter 关联,再通过注册操作,将虚拟环境添加到 Jupyter 的内核列表中,最终实现环境切换。
步骤 1:激活目标虚拟环境
所有操作需在虚拟环境中执行,因此第一步需先激活D:\play_web环境(以 Windows 系统为例,CMD 与 PowerShell 命令通用):
-
打开命令行工具,进入虚拟环境的
Scripts目录:cd D:\play_web\Scripts
-
执行激活命令:
activate
-
命令行前缀显示
(play_web)时,说明虚拟环境已激活,后续操作将基于该环境执行。
步骤 2:安装 ipykernel 依赖
ipykernel是连接虚拟环境与 Jupyter 的核心组件,需在激活的虚拟环境中安装:
pip install ipykernel
安装过程无需额外配置,等待终端提示 "Successfully installed" 即完成。若网络较慢,可添加国内镜像源(如-i ``https://pypi.tuna.tsinghua.edu.cn/simple)加速。
步骤 3:注册虚拟环境为 Jupyter 内核
将激活的play_web环境注册到 Jupyter,需指定内核标识与显示名称,方便后续识别:
python -m ipykernel install --name play\_web\_kernel --display-name "Python (play\_web)" --user
参数说明:
-
--name:内核的内部标识,建议与虚拟环境名关联(如play_web_kernel),便于后续管理; -
--display-name:Jupyter 界面中显示的内核名称(如Python (play_web)),需清晰区分不同环境; -
--user:仅为当前用户注册内核,无需管理员权限,避免权限冲突。
终端提示 "Installed kernelspec play_web_kernel in ..." 时,注册成功。
步骤 4:验证内核配置效果
-
启动 Jupyter Notebook(无需激活虚拟环境,直接在命令行执行):
jupyter notebook
-
在 Jupyter 界面中,新建 Notebook 或打开现有文件,点击顶部菜单栏的Kernel → Change Kernel;
-
下拉列表中若出现 "Python (play_web)",说明配置生效,选择该选项即可切换到虚拟环境。
补充:删除无效内核
若后续需删除已注册的内核,可按以下步骤操作:
-
查看所有已注册的内核及标识:
jupyter kernelspec list
-
根据列表中的内核标识(如
play_web_kernel),执行删除命令:jupyter kernelspec remove play_web_kernel
-
输入
y确认后,内核即被删除。