Jupyter Notebook中查看Python内核版本的方法

Chloe
Chloe
发布时间:2026-10-24| 9人浏览过
原创
在 Jupyter Notebook 中,网页右上角通常只显示通用的“Python 3”标签,无法直观反映具体的子版本号(如 3.10.12)以及底层挂载的解释器路径。要获取当前内核真实运行的 Python 版本,最可靠的方式是在活动代码单元格中直接运行 Python 内建的 sys 或 platform 模块代码,或者通过系统命令核对内核环境。

为什么界面上的“Python 3”不够具体

打开一个 Notebook 文件时,右上角状态栏往往仅标示“Python 3 (ipykernel)”。这里的名称仅仅是内核配置文件(kernel.json)中预设的显示别名(display_name),并非当前 Python 进程的动态查询结果。

Jupyter 遵循客户端与服务端的解耦架构。浏览器中操作的 Notebook 是前端交互界面,所有运算指令通过网络协议发送至独立的后台内核(Kernel)进程执行。如果系统中同时存在 Anaconda 环境、系统默认 Python 以及多个虚拟环境,前端所连接的内核很可能并不是终端中默认敲击 python 命令启动的那个解释器。因此,只有让当前内核进程亲自执行查询语句,才能得到 100% 准确的运行时版本信息。

Jupyter Notebook中查看Python内核版本的方法
图 1: Jupyter 界面指示与底层实际 Python 内核进程的解耦关系

方法一:使用 sys 模块(信息最全面,首选推荐)

Python 内置的 sys 模块提供了当前解释器的核心运行时参数。在任意代码单元格中输入并运行以下代码,即可打印完整的版本字符串以及当前内核所绑定的 Python 解释器绝对路径:

import sys

print("当前 Python 版本信息:")
print(sys.version)

print("\n解释器可执行文件绝对路径:")
print(sys.executable)
单元格运行结果示例 (输出) 当前 Python 版本信息:
3.10.12 (main, Jun 11 2023, 05:26:28) [Clang 15.0.0 (clang-1500.0.40.1)]

解释器可执行文件绝对路径:
/Users/developer/miniconda3/envs/data_analysis/bin/python

核心输出解读:

  • sys.version: 第一部分直接给出形如 3.10.12 的具体版本号,括号内附带编译时间、编译器平台及版本(如 GCC 或 Clang)。如果使用的是 Anaconda 发行版,这里还会注明 packaged by conda-forge 等发行商信息。
  • sys.executable: 极其关键的属性。它明确指出了当前内核究竟启动的是哪一个 Python 二进制文件。通过观察路径中包含的目录名(例如 /envs/data_analysis/),可以立刻核对当前内核是否正确绑定到了预期的 Conda 虚拟环境或 virtualenv 环境中。

方法二:使用 platform 模块(版本号干净纯粹)

如果只需要获取纯粹的版本数字字符串(例如用于自动化逻辑检查、断言判断当前是否高于 Python 3.9),使用内置的 platform 模块会更加清晰便捷:

import platform

print("Python 主版本号:", platform.python_version())
print("Python 版本元组:", platform.python_version_tuple())
单元格运行结果示例 (输出) Python 主版本号: 3.10.12
Python 版本元组: ('3', '10', '12')

platform.python_version() 直接返回标准的三段式版本字符串 '3.10.12',不包含编译器和杂项文本,省去了手动切片字符串的步骤。

Jupyter Notebook中查看Python内核版本的方法
图 2: 在单元格中查询并核实验证 Python 内核版本的操作流程

方法三:使用命令行语法(避坑重点)

在 Notebook 单元格中,以感叹号 ! 开头可以直接调用底层操作系统的 Shell 执行外部命令。很多读者习惯直接输入:

!python --version
⚠️ 关键注意事项: 直接执行 !python --version 所返回的版本,并不一定等同于 当前 Notebook 代码所运行的内核版本!

原因剖析:
当在单元格里敲下 !command 时,Jupyter 后台内核会派生一个全新的子进程 Shell(例如 /bin/sh 或 cmd.exe)。该 Shell 会根据系统当前全局的 PATH 环境变量去检索名为 python 的可执行程序。

如果启动 Jupyter Notebook 服务的环境与当前 Notebook 所选的 Kernel 属于不同的虚拟环境,!python 调用的将是宿主系统环境中的全局 Python,从而产生“代码运行报错提示特性不支持,但 !python --version 显示版本足够高”的困惑。

正确无误的命令行写法: 将 sys.executable 变量代入命令行执行:

import sys
!{sys.executable} --version
单元格运行结果示例 (输出) Python 3.10.12

通过 {sys.executable} 插值语法,Shell 命令被强制指向当前内核绑定的具体二进制文件,此时返回的才是绝对真实的内核版本。

Jupyter Notebook中查看Python内核版本的方法
图 3: Jupyter 内核规范配置与不同虚拟环境 Python 实体解释器的映射模型

方法四:查看系统中已注册的所有内核及对应版本

当想要了解整个 Jupyter 体系下到底注册了多少个 Python 内核,以及各自绑定在哪个环境时,可以在系统的外部终端(Terminal)或 Notebook 的单元格中运行:

!jupyter kernelspec list
命令输出示例 Available kernels:
python3 /Users/developer/Library/Jupyter/kernels/python3
pt_env /Users/developer/Library/Jupyter/kernels/pt_env
spider_env /Users/developer/Library/Jupyter/kernels/spider_env

每个内核目录下都存在一个 kernel.json 文件。如果直接查看对应目录下的配置文件(例如 cat .../kernels/pt_env/kernel.json),即可发现其内部的 argv 列表直接指定了调用该内核的具体解释器路径:

{
  "argv": [
    "/Users/developer/miniconda3/envs/pt_env/bin/python",
    "-m",
    "ipykernel_launcher",
    "-f",
    "{connection_file}"
  ],
  "display_name": "Python (PyTorch-GPU)",
  "language": "python"
}

常见问题与排查思路

1. 查看发现当前内核版本过低或不符合预期,如何切换?

在 Jupyter Notebook 顶部菜单栏中,依次点击 Kernel -> Change Kernel,即可在弹出的可用内核列表中选择目标虚拟环境。如果没有找到想要的内核,说明该虚拟环境尚未向 Jupyter 注册 ipykernel。

2. 如何将指定的虚拟环境添加到 Jupyter 内核列表中?

在终端中激活目标虚拟环境,安装 ipykernel 并将其注册到当前用户空间:

# 激活虚拟环境 (以 conda 为例)
conda activate my_target_env

# 安装内核支持工具
conda install ipykernel  # 或 pip install ipykernel

# 执行注册命令,指定在 Notebook 中显示的友好名称
python -m ipykernel install --user --name my_target_env --display-name "Python (my_target_env)"

注册完成后,刷新 Jupyter Notebook 页面,即可在内核切换列表中选择新注册的环境,并再次使用 sys.version 验证生效情况。

方法总结与速查对比

查看方法 主要调用语句 输出内容要点 适用场景与推荐度
sys 模块 import sys; print(sys.version, sys.executable) 完整版本号、编译器参数及解释器绝对路径 最全面,能排查虚拟环境指向错误(⭐⭐⭐⭐⭐ 首选)
platform 模块 import platform; print(platform.python_version()) 纯净的 '3.x.x' 版本号字符串 适合脚本中进行版本阈值逻辑判断(⭐⭐⭐⭐)
命令插值调用 !{sys.executable} -V 纯文本版本号 快速外接命令行验证,避免环境变量污染(⭐⭐⭐⭐)
内核规范列表 !jupyter kernelspec list 所有已注册内核的名称及配置文件存放路径 管理并全局排查多内核映射关系时使用(⭐⭐⭐)
Jupyter Notebook中查看Python内核版本的方法
图 4: Jupyter Notebook 查看 Python 内核版本的四种常用方法核心对比
相关标签:

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

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 算法库。