用 .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。

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

相关推荐
小码哥_常18 小时前
Spring Boot:别再重复造轮子,这些内置功能香麻了
后端
皮皮林55119 小时前
OpenFeign 首次调用卡 3 秒?八年老开发扒透 5 个坑,实战优化到 100ms!
后端
千寻girling20 小时前
《 Git 详细教程 》
前端·后端·面试
0xDevNull21 小时前
Linux 中 Nginx 代理 Redis 的详细教程
redis·后端
GetcharZp21 小时前
告别 Nginx 手动配置!这款 Go 语言开发的云原生网关,才是容器化时代的真香神器!
后端
RuoyiOffice1 天前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
spring boot·后端·vue·anti-design-vue·ruoyioffice·假期·人力
Vane11 天前
从零开发一个AI插件,经历了什么?
人工智能·后端
952361 天前
SpringBoot统一功能处理
java·spring boot·后端
rleS IONS1 天前
SpringBoot中自定义Starter
java·spring boot·后端
DevilSeagull1 天前
MySQL(2) 客户端工具和建库
开发语言·数据库·后端·mysql·服务