You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jupyter Notebook开头指定Python版本以保证分析可复现

解决方案

首先明确:Jupyter内核是在打开Notebook加载的时候就已经启动运行的,无法在单元格执行过程中直接替换当前正在运行的内核版本,不过可以通过以下两个无外部操作的方案满足复现需求:

方案1:版本强制校验(最稳妥,零额外依赖)

直接在第一个单元格加入Python版本校验逻辑,版本不匹配时直接抛出错误终止运行,避免用错版本跑出无效结果,同时后续紧跟依赖包的固定版本安装命令。
代码示例如下:

import sys
# 在这里修改为你需要的Python版本号
REQUIRED_PYTHON_MAJOR = 3
REQUIRED_PYTHON_MINOR = 9

if (sys.version_info.major != REQUIRED_PYTHON_MAJOR 
    or sys.version_info.minor != REQUIRED_PYTHON_MINOR):
    raise RuntimeError(
        f"当前Notebook要求使用Python {REQUIRED_PYTHON_MAJOR}.{REQUIRED_PYTHON_MINOR} 版本\n"
        f"当前运行的Python版本为 {sys.version.split()[0]}\n"
        "请切换对应内核后再运行后续代码"
    )

# 后续直接加你原来的固定版本依赖安装命令
!pip install allennlp==2.3
# 其他依赖安装命令...

这个方案完全不需要你或者共同作者做任何Notebook外的手动操作,打开后运行第一个单元格就会自动校验版本、安装对应依赖,版本不对会直接提示,不会出现跑了半天发现版本用错的问题。

方案2:自动创建对应版本环境(适合所有协作者都用conda的场景)

如果你们统一用conda管理环境,可以在第一个单元格自动创建指定Python版本的隔离环境、注册为Jupyter内核,第一次运行完成后刷新页面选择对应内核即可,后续不需要重复操作:

import os
import sys

REQUIRED_PYTHON_VERSION = "3.9"
ENV_NAME = "notebook-py39"

# 检查环境是否存在,不存在则创建
if os.popen(f"conda env list | grep {ENV_NAME}").read().strip() == "":
    !conda create -y -n {ENV_NAME} python={REQUIRED_PYTHON_VERSION} ipykernel
    !conda run -n {ENV_NAME} python -m ipykernel install --user --name {ENV_NAME} --display-name "Python (notebook-py39)"

# 校验版本
if sys.version.split()[0].startswith(REQUIRED_PYTHON_VERSION):
    # 安装对应版本依赖
    !pip install allennlp==2.3
else:
    raise RuntimeError(f"请刷新页面,选择内核「Python (notebook-py39)」后重新运行")

内容的提问来源于stack exchange,提问作者captain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:09:04