Jupyter Notebook中怎么查看内核使用的Python版本

桃夭
桃夭
发布时间:2026-11-13| 5人浏览过
原创

详细介绍在Jupyter Notebook中查看内核正在使用的Python版本与解释器路径的可靠方法,解析sys模块、platform模块与外部kernelspec的实现差异,并排查感叹号命令常见的环境错位陷阱。

要在 Jupyter Notebook 中准确查看当前内核使用的 Python 版本,最权威的做法是在 Notebook 的任意代码单元格中导入 sys 模块,并打印 sys.version 与 sys.executable。这条命令能够直接提取当前处理代码的 Python 解释器主进程信息,不仅输出具体的语义化版本号,还会给出解释器在系统中的绝对物理路径,彻底排除外部终端环境干扰。

一、核心方法:在单元格中执行 sys 探测代码

Jupyter Notebook 的前端页面仅负责输入和展示,实际的代码计算由后台的内核(Kernel,通常是 ipykernel)独立进程执行。想要知道当前内核使用的具体环境,必须让该内核自己汇报自身进程的元数据。

在任意空白代码单元格中输入以下两行代码,并按下 Shift + Enter 运行:

Python 单元格输入 In [1]
import sys print("当前内核版本:", sys.version) print("解释器执行路径:", sys.executable)
示例输出 (Sample Output)
当前内核版本: 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] 解释器执行路径: /home/developer/miniconda3/envs/data_analysis/bin/python

对输出信息的具体字段解析如下:

  • 主版本与补丁号:输出开头的 3.10.12 是当前内核正在运行的 Python 精确版本。
  • 构建与编译器信息:方括号中的 [GCC 11.4.0] 展示了底层二进制解释器的编译环境及构建时间戳。
  • 解释器绝对路径 (sys.executable):这一项是判断虚拟环境归属的关键。如果路径中包含 /envs/data_analysis/,说明内核正确绑定在了名为 data_analysis 的 Conda 虚拟环境中;如果显示 /usr/bin/python3,则说明内核实际上借用了系统的全局 Python。
Jupyter Notebook中怎么查看内核使用的Python版本
图 1:Notebook 单元格内查看内核 Python 版本的标准执行顺序与判定逻辑

二、辅助方法:使用 platform 模块获取格式化版本

如果需要在 Notebook 代码中编写自动化断言(例如检查当前环境是否满足某类科学计算库的最低版本要求),使用 sys.version 截取字符串稍显繁琐。此时可借助 Python 标准库中的 platform 模块,直接提取标准三位语义化版本号:

Python 单元格输入 In [2]
import platform version_str = platform.python_version() build_info = platform.python_build() arch_info = platform.architecture()[0] print(f"语义化版本号: {version_str}") print(f"构建版本与日期: {build_info}") print(f"系统位数架构: {arch_info}")
示例输出 (Sample Output)
语义化版本号: 3.10.12 构建版本与日期: ('main', 'Jun 11 2023 05:26:28') 系统位数架构: 64bit

platform.python_version() 返回纯粹的字符串(如 "3.10.12"),配合 tuple(map(int, platform.python_version_tuple())),可以非常方便地在 Notebook 脚本头部做版本前置校验,避免由于环境版本不匹配导致的语法或库函数错误。

三、核心机制:Jupyter 内核与外部 Shell 的隔离原理

不少初学者在查看版本时,会习惯性地在单元格里使用感叹号运行系统命令,例如输入 !python --version 或 !which python。这种做法经常会导致严重误判,必须明确其底层机理。

⚠️ 警惕常见误区:为什么不要使用 !python --version 在 Jupyter 单元格中,以感叹号 ! 开头的语句并不会由当前 Python 内核执行,而是由 Jupyter Server 派生出一个临时的底层系统子 Shell(Subshell)。该子 Shell 会根据启动 Jupyter Server 时的系统 PATH 环境变量来寻找默认的 python 命令。如果你的 Jupyter 是在全局基础环境(Base)启动的,但当前 Notebook 切换了某个虚拟环境内核,那么 !python --version 查看到的只是 Base 环境的 Python,而不是当前单元格正在使用的 Python!
Jupyter Notebook中怎么查看内核使用的Python版本
图 2:Jupyter Web 端、Server 服务与内核独立进程的环境隔离拓扑关系

从图 2 可以清晰地看出:内核是由 kernel.json 规范文件明确指定解释器二进制路径直接派生出的独立长守护进程,其内部运行上下文(sys.executable)具有唯一权威性;而感叹号命令派生自临时子进程,不具备对内核环境的准确表征能力。

如果你确实需要在 Notebook 中为当前内核安全地安装第三方包或查看当前环境的 pip 依赖,应显式指定当前内核解释器,或使用 IPython 内置的魔术命令:

推荐:基于当前内核的安全调用方式 In [3]
# 方式 A:通过 sys.executable 绝对路径安全调用 import sys !{sys.executable} -m pip --version # 方式 B:使用现代化 IPython 专用魔术命令(自动绑定当前内核) %pip --version
Jupyter Notebook中怎么查看内核使用的Python版本
图 3:不同检测方式的执行上下文、信息粒度与可靠性对比分析

四、外部核对:在系统终端核查 kernelspec 配置文件

除了在运行中的 Notebook 内部查看,还可以从系统终端(Terminal)层面检查 Jupyter 注册的所有内核定义,从而了解各个内核分别绑定了哪一个 Python 解释器。

1. 列出系统已注册的内核名称与物理路径

在系统终端中运行以下命令:

终端命令 (Terminal) bash
jupyter kernelspec list
示例输出 (Sample Output)
Available kernels: python3 /usr/local/share/jupyter/kernels/python3 py310 /home/developer/.local/share/jupyter/kernels/py310 pytorch_env /home/developer/.local/share/jupyter/kernels/pytorch_env

2. 查看具体内核的 kernel.json 配置文件

在上述输出中,每一个内核都对应一个磁盘目录。查看对应目录下的 kernel.json 文件,即可看到该内核启动时执行的真实 Python 路径:

查看配置命令 bash
cat /home/developer/.local/share/jupyter/kernels/py310/kernel.json
示例配置内容 (kernel.json)
{ "argv": [ "/home/developer/miniconda3/envs/py310/bin/python", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "Python 3.10 (py310)", "language": "python", "metadata": { "debugger": true } }

argv 数组中的第一个元素 /home/developer/miniconda3/envs/py310/bin/python,就是当你在 Jupyter 菜单中选择该内核时,系统真正拉起运行的 Python 二进制执行文件。

五、内核版本与目标环境不一致的排查与修复

很多开发者在查看内核版本后,发现虽然 Notebook 右上角显示的内核名称为“Python (myenv)”,但 sys.executable 打印出的路径却依然指向系统的全局 Python。这通常是因为在创建内核规范时,未将 ipykernel 安装在目标虚拟环境内,导致内核回退使用了默认解释器。

Jupyter Notebook中怎么查看内核使用的Python版本
图 4:内核 Python 版本异常识别与环境修复闭环决策树

当确认内核版本与预期环境不一致时,可按照以下标准化流程进行修复:

  1. 进入目标环境:在终端中激活目标虚拟环境或 Conda 环境:
    终端命令bash
    conda activate myenv # 或 source /path/to/venv/bin/activate
  2. 安装 ipykernel 核心组件:确保当前激活的环境内具备内核驱动能力:
    终端命令bash
    pip install ipykernel
  3. 向 Jupyter 重新注册当前环境内核:利用当前环境的 python 解释器生成专有内核规范:
    终端命令bash
    python -m ipykernel install --user --name myenv --display-name "Python 3.10 (myenv)"
  4. 重新加载验证:回到 Jupyter Notebook 页面,点击顶部菜单的 Kernel -> Change Kernel,切换为刚才注册的 Python 3.10 (myenv),再次执行 sys.executable 确认路径已正确更正为目标环境。
💡 总结建议 在 Jupyter Notebook 中排查与验证环境时,永远记住一条准则:以 import sys; print(sys.executable) 作为检验环境的唯一标准。只有当输出路径确实位于预期的虚拟环境目录中时,你在该环境中安装的依赖包才能被 Notebook 正确加载和使用。
相关专题:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。