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确认后,内核即被删除。

相关推荐
4SAPI6 小时前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
XCDoris8 小时前
郴州logo设计机构
大数据·人工智能·python
gCode Teacher 格码致知9 小时前
Pandas教学-17:Series与Dataframe的关系
开发语言·python·pandas
马良神笔10 小时前
2026 年Rag最近技术前沿总结
后端·python·django
不像程序员的程序媛10 小时前
maven基础
python·pycharm·maven
xiaogai_gai11 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
benchmark_cc12 小时前
Python 量化系统如何设计统一的数据访问接口:从策略解耦到数据层架构
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
const_qiu12 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
估值探索者13 小时前
【Python量化选股流水线 #04】选股器好不好用?「昨日候选→今日表现」回看验收
开发语言·python·股票数据·股票数据api接口
田里的水稻13 小时前
PyTorch_Dataloader\TensorBoard---数据加载与可视化
人工智能·pytorch·python·神经网络·机器学习