用 .bat 一键启动 Jupyter:多环境切换

在 Windows 下,如果直接点 Jupyter 图标再切换 kernel,常会遇到环境不稳定、依赖冲突甚至内核崩溃。更稳妥的做法是:先用 .bat 激活指定 conda 环境,再启动 Jupyter。这样环境变量、依赖路径和 Python 解释器是一致的。

一、JupyterLab 启动脚本

文件名:start_jupyterlab.bat

vbnet 复制代码
@echo off
chcp 65001 >nul
title JupyterLab Launcher

call C:\path\to\anaconda3\Scripts\activate.bat

:menu
cls
echo =========================
echo JupyterLab Menu
echo =========================
echo.
echo 1. base
echo 2. env_a
echo 3. env_b
echo.
echo 0. Exit
echo.
set /p choice=Choose environment:

if "%choice%"=="1" set ENV_NAME=base& goto launch
if "%choice%"=="2" set ENV_NAME=env_a& goto launch
if "%choice%"=="3" set ENV_NAME=env_b& goto launch
if "%choice%"=="0" goto end

pause
goto menu

:launch
cd /d G:\
call conda activate %ENV_NAME%
jupyter lab
pause
goto end

:end
exit

二、Jupyter Notebook 启动脚本

把这里:

css 复制代码
call conda activate %ENV_NAME%
jupyter lab
pause

改为:

css 复制代码
call conda activate %ENV_NAME%
jupyter notebook
pause

其余逻辑完全相同。

三、完整使用流程

  1. 安装 Anaconda 或 Miniconda。
  2. 确认 activate.bat 路径(conda的安装路径里)。
  3. 把常用环境名写进菜单。
  4. cd /d 路径 指定启动根目录。
  5. 双击 .bat,输入编号,自动激活环境并启动。

四、首次启动时的根目录

Jupyter 不是系统资源管理器,它只能看到启动根目录及其子目录

例如:

*cd /d G:*

表示首次进入后,文件树根目录就是 G:

如果写成某个项目目录,就只能看到该项目及其下级文件夹,不能再往上退。

五、再次启动是否会回到历史文件

  • 目录层面:仍以脚本里写的根目录为准。

  • 文件层面

    • JupyterLab 会更倾向恢复上一次的工作区、标签页和布局。
    • Jupyter Notebook 更偏向单文件使用,历史恢复能力弱一些。

所以,Lab 更像"继续上次工作现场",Notebook 更像"重新打开一个笔记本"。

六、Notebook 和 Lab 怎么选

Jupyter Notebook

优点:轻量、简单、上手快、干扰少。

缺点:多文件管理弱,项目化体验一般。

适合:Python 初学者、单个实验、小型练习、课堂学习。

JupyterLab

优点:可同时管理 notebook、脚本、终端、文件夹,适合项目开发。

缺点:界面更复杂,资源占用略高。

适合:科研计算、图像处理、多脚本项目、长期开发用户。

七、结论

如果你经常切 conda 环境,不要依赖图标启动后再切 kernel

更推荐:.bat 先激活目标环境,再启动 Jupyter

入门、轻量任务用 Notebook;项目开发、多文件协同用 Lab。

核心原则只有一句:启动方式决定稳定性,根目录决定你能看到哪里。

相关推荐
Ysx21 分钟前
Dify Custom Tool 设计模式:一行提示词接入一张新报表
人工智能·后端
小卿噢22 分钟前
malloc 成功 ≠ 你有内存:一次把 OOM 从头测到尾
linux·后端
JoyT24 分钟前
Spring AI 2.0 进阶入门:Badcase、Eval 与大模型应用效果优化
后端
wei_shuo25 分钟前
KES 事务处理深度实践:隔离级别选择、MVCC机制应用与并发冲突解决
后端
旺仔不是程序员32 分钟前
复合索引最左前缀原则:PostgreSQL 的 WHERE 为什么必须命中第一列
数据库·后端·sql
旺仔不是程序员35 分钟前
字段类型不一致:PostgreSQL 报错与索引失效的第一元凶
数据库·后端·sql
JaguarJack1 小时前
PHP Trait 为何可能成为语言的关键特性
后端·php·服务端
n8n1 小时前
多 Agent 协作实战:Supervisor 模式构建专家团队,突破单一 Agent 能力边界
后端
BingoGo1 小时前
PHP Trait 为何可能成为语言的关键特性
后端·php
名字还没想好☜1 小时前
Python 的 __call__ 实战:让实例像函数一样被调用,做带状态计数器、缓存器与可配置策略
开发语言·后端·python·缓存·编程语言