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

如何用单脚本按序运行依赖不同Conda环境的Jupyter Notebook?

按序运行对应Anaconda环境的Jupyter Notebook脚本方案

完全可以通过单脚本实现按序运行所有Notebook并匹配对应环境,以下是具体实现步骤和示例:

核心逻辑

借助Anaconda的conda run命令直接在指定环境中执行任务,搭配jupyter nbconvert工具运行Notebook,按顺序处理每个文件,确保前一个Notebook生成的CSV输出就绪后再启动下一个。

具体实现

1. 整理环境与Notebook对应关系

先把每个Notebook和对应的Anaconda环境按执行顺序列出来,比如:

  • notebook1.ipynb → env_notebook1
  • notebook2.ipynb → env_notebook2
  • ...
  • notebook10.ipynb → env_notebook10

2. 编写批量运行脚本

根据操作系统选择对应的脚本:

Linux/macOS Shell脚本

#!/bin/bash

# 按顺序定义Notebook和对应环境,格式为"文件名:环境名"
declare -a tasks=(
    "notebook1.ipynb:env_notebook1"
    "notebook2.ipynb:env_notebook2"
    "notebook3.ipynb:env_notebook3"
    # 补充剩余7个Notebook和环境的对应关系
)

for task in "${tasks[@]}"; do
    # 拆分文件名和环境名
    IFS=":" read -r nb_file env_name <<< "$task"
    
    echo "=== 开始运行 $nb_file (环境: $env_name) ==="
    # 在指定环境中执行Notebook,覆盖原文件保存执行结果
    conda run -n "$env_name" jupyter nbconvert --to notebook --execute "$nb_file" --inplace
    
    # 检查运行是否成功,失败则终止流程
    if [ $? -ne 0 ]; then
        echo "❌ $nb_file 运行失败,终止全部流程"
        exit 1
    fi
    echo "✅ $nb_file 运行完成"
done

echo "🎉 所有Notebook已按序执行完毕"

Windows 批处理脚本

@echo off
setlocal enabledelayedexpansion

:: 按顺序定义Notebook和对应环境,用分号分隔,格式为"文件名:环境名"
set "tasks=notebook1.ipynb:env_notebook1;notebook2.ipynb:env_notebook2;notebook3.ipynb:env_notebook3"

for %%t in (%tasks%) do (
    set "current_task=%%t"
    :: 拆分文件名和环境名
    for /f "tokens=1,2 delims=:" %%a in ("!current_task!") do (
        echo === 开始运行 %%a (环境: %%b) ===
        conda run -n %%b jupyter nbconvert --to notebook --execute %%a --inplace
        
        :: 检查运行状态
        if errorlevel 1 (
            echo ❌ %%a 运行失败,终止全部流程
            exit /b 1
        )
        echo ✅ %%a 运行完成
    )
)

echo 🎉 所有Notebook已按序执行完毕

关键细节

  • conda run -n <环境名>:无需手动激活环境,直接在指定环境中执行后续命令,避免环境切换的麻烦。
  • jupyter nbconvert --execute:执行Notebook中的所有代码,--inplace会将执行结果覆盖原Notebook,也可以用--output <新文件名>保存执行后的版本。
  • 错误检查:每个Notebook运行失败时脚本会立即终止,防止后续依赖错误的Notebook无效执行。
  • CSV路径:确保所有Notebook读取和写入CSV的路径一致,且脚本运行用户拥有该路径的读写权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:01:20