配置文件不可直接迁移,因含本地路径、IP、端口等硬编码;应导出 environment.yml 和 jupyter_server_config.json(含密码哈希),新机重建环境并重设路径、远程配置。

配置文件本身不建议直接迁移
直接复制 jupyter_notebook_config.py 到另一台电脑,大概率会失效甚至引发启动失败。原因很实在:这个文件里常硬编码本地路径(比如 c.NotebookApp.notebook_dir = 'D:\Jupyter_Notebooks')、绑定本机 IP 或端口、包含绝对路径的扩展插件引用,而新机器的盘符、用户名、网络环境全都不一样。
更关键的是,Jupyter 从 6.0+ 版本起默认使用 jupyter_server_config.py 和 jupyter_server_config.json 管理服务层配置(如远程访问、密码、token),旧版 notebook 配置已逐步被取代。盲目迁移旧配置容易造成服务启动冲突。
真正该迁移的是 environment.yml + 密码配置
如果你的目标是“在新机器上获得一模一样的 Jupyter 使用体验”,核心不是搬配置文件,而是重建可复现的运行环境:
-
conda env export > environment.yml—— 导出当前环境所有包(含jupyter、notebook、jupyterlab及其依赖版本) -
jupyter notebook password执行后生成的加密密码,会写入~/.jupyter/jupyter_server_config.json;这个文件可以安全复制过去(仅含密码哈希,不含明文) - 如果用到了自定义 nbextension,应单独记录安装命令(如
jupyter contrib nbextension install --user),而不是复制~/.jupyter/nbextensions/目录
新机器上执行 conda env create -f environment.yml,再把 jupyter_server_config.json 放到对应位置,就能还原登录密码和基础服务行为。
路径类配置必须重设,不能复用
像 c.NotebookApp.notebook_dir、c.ServerApp.root_dir 这类路径配置,迁移后必须手动修改:
- 新机器上先运行
jupyter server --generate-config(推荐用 server 命令而非 notebook,更符合当前主干逻辑) - 打开生成的
~/.jupyter/jupyter_server_config.py,取消注释并设置为新路径,例如:c.ServerApp.root_dir = r'D:ProjectsJupyter' - Windows 下务必用原始字符串
r'...'或双反斜杠'D:\Projects\Jupyter',单斜杠会触发转义错误 - 路径中避免中文、空格、特殊符号;目标目录需提前手动创建,否则启动时报
FileNotFoundError
远程访问配置要重做,别抄 IP
如果你在原机器上配过远程访问(比如 c.ServerApp.ip = '0.0.0.0'),迁移到新机器后不能直接复用。原因有三:
- 新机器的防火墙规则可能不同,开放端口需重新确认
- 局域网 IP 通常变化(尤其 DHCP 环境),
c.ServerApp.ip设为'0.0.0.0'没问题,但实际连接地址得看新机器当前 IP(用ipconfig或ifconfig查) -
c.ServerApp.token是启动时动态生成的,每次重启都变;依赖 token 访问的场景,应改用密码(通过jupyter server password设置)或禁用 token(c.ServerApp.token = '')并配合 HTTPS
最稳妥的做法:在新机器上重新执行 jupyter server password,再按需修改 jupyter_server_config.py 中的 ip、port、open_browser 等项——而不是试图保留旧配置。
真正需要跨机器保持一致的,只有环境依赖和认证凭据;其余全是上下文相关的本地设置,强行迁移反而增加排错成本。


















