Jupyter中怎么查看当前Python版本

顾星河
顾星河
发布时间:2026-10-23| 7人浏览过
原创

在Jupyter Notebook或JupyterLab中,最直接且准确查看当前运行Python版本的方法,是在代码单元格(Cell)中导入内置的 sys 模块并输出 sys.version。若同时需要确认解释器所处的具体虚拟环境或安装路径,还可以打印 sys.executable。本文将系统梳理在Jupyter中核对Python版本的三种实用手段,并深入剖析代码内核与终端Shell命令在版本判断上的关键差异,帮助你彻底理清当前代码究竟在哪个环境中运行。

一、使用内置 sys 模块查看(推荐标准做法)

Jupyter本质上是通过后端的内核(Kernel)来解析并执行Python语句的。调用Python自带的 sys 模块,能够直接读取当前解释器进程在内存中保留的完整版本字符串与系统构建信息。

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

import sys
print(sys.version)

执行后单元格下方会输出类似如下的多行信息:

3.10.12 (main, Jun 11 2023, 05:26:28) [Clang 15.0.0 (clang-1500.0.40.1)]

这段信息包含了三项关键事实:主版本号(3)、次版本号(10)、补丁号(12),以及编译该Python解释器时的构建工具与日期。如果读者还需要核实当前Jupyter是不是运行在某个指定的 Conda 虚拟环境或 virtualenv 目录下,务必紧接着执行:

print(sys.executable)

该命令会返回当前执行该Notebook的Python解释器绝对物理路径,例如 /Users/name/miniconda3/envs/data-analysis/bin/python。只有版本号与解释器绝对路径两者结合,才能百分之百确认运行环境没有错配。

Jupyter中怎么查看当前Python版本
图 1:在Jupyter单元格中执行代码检测Python版本的完整操作路径

二、使用 platform 模块获取格式化版本字符串

如果不需要复杂的编译器构建时间,只希望得到像 '3.10.12' 这样干净的纯文本版本号,或者希望在脚本中依据版本做逻辑判断,推荐使用 Python 的 platform 模块:

import platform

# 仅获取核心版本号,如 "3.10.12"
print(platform.python_version())

# 以三元组元组形式获取,如 ('3', '10', '12')
print(platform.python_version_tuple())

platform.python_version_tuple() 提供了字符串元组格式,当需要在代码中编写兼容性断言时非常方便,例如:

major, minor, patch = platform.python_version_tuple()
if int(minor) < 9:
    print("当前环境Python版本低于3.9,可能无法使用某些新语法特性!")
else:
    print(f"当前版本为 Python {major}.{minor}.{patch},满足运行要求。")

三、运行 Shell 命令的差异与潜在误区

很多开发者习惯在Jupyter的代码单元格中使用叹号 ! 触发外部 Shell 命令行,例如:

!python --version
!which python

在简单环境下,这确实会打印出一个版本号。但这种做法隐藏着极大的混淆风险。许多学习者常遇到的“在Jupyter中用pip安装了包却在Notebook里import报错”,根源正是混淆了这两个命令的执行机制。

核心概念:内核环境与子Shell环境的区别

在Jupyter单元格里直接写 sys.version,是由当前 Notebook 绑定的 Kernel 进程 内部执行的;而写 !python --version,则是Jupyter通过底层操作系统启动了一个临时的 Shell 子进程,并在系统当前的 PATH 环境变量中寻找名为 python 的第一个命令。

Jupyter中怎么查看当前Python版本
图 2:sys 模块内核执行与 ! 叹号子进程命令执行的底层运行链路对比

为了直观展现两者在不同使用情境下的特性,可以参考下表:

对比维度 sys.version / sys.executable !python --version / !which python
执行载体 当前绑定的 Jupyter Kernel 内部解释器 宿主操作系统派生的临时 Shell 子进程
环境变量依赖 绑定启动时的 KernelSpec 配置 依赖 Jupyter Server 启动时的系统 PATH
准确度 100% 绝对准确反映当前 Notebook 环境 可能指向系统默认 Python,导致误判
适用场景 检查当前代码运行环境、调试导包报错 快速探测系统终端命令是否可用

四、在图形界面与内核规格(Kernel Spec)中查看

除了在单元格中写代码,Jupyter的前端界面本身也提供了直观的内核指示:

  • 页面右上角:无论是经典 Jupyter Notebook 还是 JupyterLab,右上角都会显示当前内核的名称(如 Python 3 (ipykernel) 或自定义的环境名)。
  • 菜单栏切换:在顶部菜单点击 Kernel -> Change Kernel,可以查看当前Jupyter识别到的所有可用 Python 环境列表。

但是,界面上的名字(Display Name)只是一个人类可读的标签,它的背后对应的是保存在磁盘上的 kernel.json 配置文件。如果想从根本上搞清楚界面上的内核究竟对应哪个 Python,可以在终端中运行:

jupyter kernelspec list

这会列出所有内核配置文件的存放目录。打开对应目录中的 kernel.json,里面的 argv 首项就是指向具体 Python 解释器的物理路径。

Jupyter中怎么查看当前Python版本
图 3:Jupyter界面显示名称、底层KernelSpec配置文件与物理Python解释器的关联架构

五、版本不符合要求时的纠正方法

如果运行 sys.version 发现当前的 Python 版本与项目预期不符(例如项目要求 Python 3.10,而当前输出的是 3.8),通常是因为 Jupyter 没有正确关联到目标虚拟环境。解决此问题的标准修复流程如下:

  1. 在终端中激活目标虚拟环境:
    # Conda 环境
    conda activate my_env
    
    # 或 venv 环境
    source my_env/bin/activate
  2. 在目标环境中安装 ipykernel 工具包:
    pip install ipykernel
  3. 将当前环境注册为 Jupyter 的新内核:
    python -m ipykernel install --user --name my_env --display-name "Python (my_env)"
  4. 刷新页面并切换内核: 回到 Jupyter 网页界面,刷新浏览器,在顶部菜单中选择 Kernel -> Change Kernel,切换到新添加的 Python (my_env)。再次运行 import sys; print(sys.version) 即可看到正确的版本。

六、排查与总结速查

为了便于在日常开发中快速定位问题,我们将检测版本与路径的核心代码及排查逻辑总结为以下速查卡片:

Jupyter中怎么查看当前Python版本
图 4:Jupyter环境查看与诊断的常用命令及适用场景速查

综上所述,在Jupyter中查看Python版本并不复杂,关键在于树立“以代码内核为准”的意识。通过 sys.version 确定具体版本、结合 sys.executable 验证文件路径,就能在几秒钟内完全掌握当前代码的运行底座,从而避免依赖冲突或版本错配带来的各类调试困扰。

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

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