Jupyter Notebook 配置使用虚拟环境中(virtualenv) 内核

如何为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 命令通用):

  1. 打开命令行工具,进入虚拟环境的Scripts目录:

    cd D:\play_web\Scripts

  2. 执行激活命令:

    activate

  3. 命令行前缀显示(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:验证内核配置效果

  1. 启动 Jupyter Notebook(无需激活虚拟环境,直接在命令行执行):

    jupyter notebook

  2. 在 Jupyter 界面中,新建 Notebook 或打开现有文件,点击顶部菜单栏的Kernel → Change Kernel

  3. 下拉列表中若出现 "Python (play_web)",说明配置生效,选择该选项即可切换到虚拟环境。

补充:删除无效内核

若后续需删除已注册的内核,可按以下步骤操作:

  1. 查看所有已注册的内核及标识:

    jupyter kernelspec list

  2. 根据列表中的内核标识(如play_web_kernel),执行删除命令:

    jupyter kernelspec remove play_web_kernel

  3. 输入y确认后,内核即被删除。

相关推荐
Geoking.5 小时前
PyTorch torch.ones()张量创建详解
人工智能·pytorch·python
conkl5 小时前
在 CentOS 系统上实现定时执行 Python 邮件发送任务完整指南
linux·运维·开发语言·python·centos·mail·邮箱
人工智能教学实践5 小时前
TCP 与 HTTP 协议深度解析:从基础原理到实践应用
python
查士丁尼·绵6 小时前
笔试-计算网络信号
python
淼_@淼6 小时前
python-xml
xml·python·1024程序员节
yumgpkpm6 小时前
CMP(类ClouderaCDP7.3(404次编译) )完全支持华为鲲鹏Aarch64(ARM)POC报告
大数据·hive·hadoop·python·elasticsearch·hbase·cloudera
前进的李工6 小时前
LeetCode hot100:560 和为k的子数组:快速统计法
python·算法·leetcode·前缀和·哈希表
用户3721574261357 小时前
Python 高效实现 Excel 与 TXT 文本文件之间的数据转换
python
AndrewHZ7 小时前
【图像处理基石】图像滤镜的算法原理:从基础到进阶的技术解析
图像处理·python·opencv·算法·计算机视觉·滤镜·cv