启动Jupyter Notebook突然要密码是因为配置文件默认启用了认证机制,常见原因包括自动生成的配置残留、token fallback或jupyter_notebook_config.json覆盖设置;解决方法是清空password和token、关闭password_required,并删除优先级更高的config.json。

为什么启动 Jupyter Notebook 会突然要密码?
你没设过密码,但打开浏览器却弹出登录框——这通常不是“被黑了”,而是配置文件里默认启用了认证机制。Jupyter 在生成配置后(jupyter notebook --generate-config),会悄悄把 c.NotebookApp.password 或 c.NotebookApp.token 设为非空值,或者继承了旧配置的残留设置。更常见的是:你之前运行过带 --no-browser 的命令,而 Jupyter 自动 fallback 到 token 认证,但终端没显示 URL,导致你以为“要输密码”。
直接禁用密码:改配置文件最稳妥
修改 ~/.jupyter/jupyter_notebook_config.py(Windows 是 C:\Users\USERNAME\.jupyter\jupyter_notebook_config.py),重点只动两行:
-
c.NotebookApp.password = ''(清空字符串,不是注释掉) -
c.NotebookApp.token = ''(同样设为空字符串) - 顺手加一行:
c.NotebookApp.password_required = False(显式关闭强制密码)
改完保存,重启 jupyter notebook。如果仍跳登录页,说明有缓存或冲突——先关掉所有 notebook 进程,再删掉 ~/.jupyter/jupyter_notebook_config.json(它优先级高于 .py 文件,常存旧 token)。
启动时临时绕过:命令行参数比改配置更快
不想碰配置文件?直接加参数启动:
jupyter notebook --no-browser --NotebookApp.token='' --NotebookApp.password=''- 如果报错说
password不支持空值,换成:--NotebookApp.password_required=False - 注意:这种写法不会持久化,每次都要加;且
--ip=0.0.0.0一起用时,务必确保只在本地网络用,公网裸奔等于交出服务器控制权
token 空了还跳登录页?检查浏览器和进程残留
即使配置全清空,也可能因以下原因卡在登录页:
- 浏览器记住了上次的
localhost:8888/tree页面,但服务已重启,session 失效 → 强刷或换无痕窗口 - 后台还有 notebook 进程在跑(
ps aux | grep jupyter或 Windows 任务管理器查python),老进程带着旧 token 占着端口 →killall jupyter-notebook或手动杀进程 - 你用的是 JupyterLab 而非 classic notebook,它的认证逻辑略有不同 → 改配置时确认文件名是
jupyter_notebook_config.py,不是jupyter_lab_config.py
真正容易被忽略的是 jupyter_notebook_config.json 的存在——它由 jupyter notebook password 自动生成,且会覆盖 .py 里的设置。只要它还在,清空 .py 文件就白忙。


















