1.1 环境配置与内核管理


1.1 环境配置与内核管理

本节摘要:Jupyter 的高效使用从「装对环境」开始。本节对比 Anaconda 与 pip 安装、演示 venv/conda 创建虚拟环境、用 ipykernel 把环境注册为可选内核,并说明 jupyter kernelspec listimport sys; sys.executable 如何定位 ImportError 根因。

学习目标

阅读完本节,你应当能够:

  1. 选择 pip 或 Anaconda 安装 Notebook,并在终端启动 jupyter notebook 或 JupyterLab
  2. 用 venv 或 conda 创建隔离环境,避免项目间 pandas/numpy 版本冲突
  3. 执行 python -m ipykernel install --user --name=... --display-name=... 注册内核
  4. jupyter kernelspec list 查看、用 jupyter kernelspec uninstall 清理废弃内核

一、安装路径:Anaconda 还是 pip

Anaconda 一次安装 Python + 常用科学计算包 + Navigator 图形入口,适合初学者快速开跑。官网下载安装后,可在 Navigator 里点 Jupyter Notebook,或在终端:

jupyter notebook

pip 更轻:已有 Python 时只需:

pip install notebook jupyter notebook

若团队已统一用 JupyterLab,可装 pip install jupyterlab,内核与环境管理逻辑与经典 Notebook 相同。

方式 适合 注意
Anaconda 单机学习、数据科学入门 包体积大,多环境用 conda 管理
pip + venv 项目制、CI 复现 需自行注册 ipykernel
远程 JupyterHub 团队/课程 内核由管理员预装,本地章节仍适用排查思路

⚠️ 常见坑:在系统 Python 里 pip install pandas,Notebook 却选中了 conda 的 base 内核——终端与 Notebook 不是同一个解释器。

二、虚拟环境:venv 与 conda

SOURCE 原文强调:每个项目独立环境,避免 A 项目要 pandas 1.x、B 项目要 2.x 互相踩脚。

venv(Python 3.3+ 内置)

python3 -m venv my_project # Windows PowerShell 激活 .\my_project\Scripts\Activate.ps1 # Linux/macOS source my_project/bin/activate pip install ipykernel jupyter python -m ipykernel install --user --name=my_project --display-name="Python (my_project)"

conda(数据科学常见):

conda create --name data_science python=3.9 conda activate data_science pip install ipykernel python -m ipykernel install --user --name=data_science --display-name="Python (data_science)"

注册后,Notebook 菜单 Kernel → Change kernel 里会出现 Python (my_project)Python (data_science)--name 是机器用标识,--display-name 是界面显示名——团队文档里两个都要写清楚。

内核与环境对应关系

内核与环境对应关系

三、内核管理与排查

SOURCE 列出两条维护命令:

  • 查看已安装内核jupyter kernelspec list
  • 删除无用内核jupyter kernelspec uninstall <kernel_name>

Notebook 首格验收代码(应指向你刚注册的环境):

import sys print(sys.executable) print(sys.version)

若路径不是 my_project\Scripts\python.exe(或 conda env 路径),说明右上角内核选错——这是「ModuleNotFoundError 明明 pip 装过」的最高频原因。

扩展(可选):SOURCE 提到 Nbextensions(pip install jupyter_contrib_nbextensions + jupyter contrib nbextension install --user)与 JupyterLab 扩展(如 @jupyterlab/toc)。扩展增强 UI,但不替代正确的内核;建议环境稳定后再装。

症状 优先检查
import 失败 内核 vs 终端 Python 是否一致
装包后仍报错 Kernel → Restart,而非只重跑单元格
内核列表杂乱 kernelspec uninstall 旧项目名
多人协作对不上版本 requirements.txt 或 environment.yml + README 写内核 display-name

💡 关键直觉display-name 给人看,--name 给 Jupyter 索引;删环境前先用 kernelspec uninstall 清注册,否则留下指向已删除路径的「僵尸内核」。

要点速记

  • 双安装路径:Anaconda 省心,pip+venv 更利于项目隔离与 CI
  • venv/conda 流程:创建 → 激活 → 装包 → ipykernel install
  • kernelspec list/uninstall:维护内核列表
  • sys.executable:Notebook 内一键验明正身
  • Restart 内核:改依赖后必须重启,不是重跑一格就够

下一节进入 命令模式与快捷键——环境对了,就要让手速跟上。

多环境实战:同时维护两套依赖

实际工作中,你常常要同时在"做项目的 venv"和"复现论文的 conda 环境"之间切换。推荐的做法是给每个环境起一个一眼能认出的 --name--display-name

python -m ipykernel install --user \ --name=finance_report \ --display-name="Python (finance-report 3.10)"
conda create --name research_env python=3.11 conda activate research_env pip install ipykernel python -m ipykernel install --user \ --name=research_env \ --display-name="Python (research 3.11)"

注册完成后执行 jupyter kernelspec list,会看到两个内核条目。切内核时注意:Notebook 右上角只显示 display-name,命令行工具只认 name,两者对应关系要写进项目 README,否则换人接手又得从头猜。

内核状态与缓存

Notebook 页面右上角的小圆点颜色含义值得记住:空心灰表示内核未连接,实心圆表示正在运行。当依赖装好却仍报 ModuleNotFoundError 时,先执行 Kernel → Restart,因为已导入的模块在内存里是旧版本,只有重启内核才会重新加载。另一个高频误判是把"重启内核"等同于"重启浏览器"——重启浏览器不会清空内核内存,问题依旧。

僵尸内核与清理顺序

删除 conda 环境或 venv 目录后,Jupyter 仍会列出旧内核,点击必然报错。清理顺序是:先 jupyter kernelspec list 找到名字,再 jupyter kernelspec uninstall <name> 注销,最后才删环境目录。反过来如果先删了目录再注销,虽然 uninstall 仍可执行,但列表里会短暂残留指向不存在路径的悬空条目,容易误导同事。

常见症状速查

症状 第一反应 第二反应
pip 装包成功但 import 失败 核对 sys.executable Kernel → Restart
新环境在内核列表里找不到 重跑 ipykernel install 检查 jupyter 命令所在环境
内核列表有旧项目残留 kernelspec list kernelspec uninstall
换机器同一套代码报缺包 导出 requirements.txt conda env export

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U