启动Jupyter Notebook时频繁出现403 GET API错误求助
Jupyter Notebook 403 Forbidden API 请求故障排查与解决
故障现象
昨日可正常本地运行Jupyter Notebook,今日启动后,无论在哪个目录启动,终端频繁输出以下403错误日志:
[W 04:46:14.287 NotebookApp] 403 GET /api/kernelspecs?1706154374276 (127.0.0.1) 0.550000ms referer=None [W 04:46:14.288 NotebookApp] Forbidden [W 04:46:14.288 NotebookApp] 403 GET /api/sessions?1706154374281 (127.0.0.1) 1.130000ms referer=None [W 04:46:14.289 NotebookApp] Forbidden [W 04:46:14.289 NotebookApp] 403 GET /api/kernelspecs?1706154374280 (127.0.0.1) 1.560000ms referer=None [W 04:46:14.289 NotebookApp] Forbidden [W 04:46:14.289 NotebookApp] 403 GET /api/kernels?1706154374281 (127.0.0.1) 1.640000ms referer=None [W 04:46:14.289 NotebookApp] Forbidden [W 04:46:14.289 NotebookApp] 403 GET /api/kernelspecs?1706154374281 (127.0.0.1) 1.730000ms referer=None [W 04:46:14.290 NotebookApp] Forbidden [W 04:46:14.290 NotebookApp] 403 GET /api/kernels?1706154374281 (127.0.0.1) 1.820000ms referer=None [W 04:46:14.290 NotebookApp] Forbidden [W 04:46:14.290 NotebookApp] 403 GET /api/kernels?1706154374286 (127.0.0.1) 1.510000ms referer=None
同时在Notebook中运行代码时也会出现多种格式错误。
已尝试的无效修复方案
- 更新pip:
pip install --upgrade pip - 安装指定版本依赖:
pip install pyqt5==5.12 pyqtwebengine==5.12 - 安装兼容版nbclassic:
pip install nbclassic~=0.2 - 升级相关包:
pip install --upgrade spyder jupyterlab - 执行conda更新jupyter:
conda update jupyter
当前环境信息
- Python版本:3.9.18
- Jupyter相关包版本:
- jupyter 1.0.0
- jupyter-client 6.1.12
- jupyter-server 1.13.5
- jupyterlab 3.3.2
- nb开头包版本:
- nbclassic 0.5.5
- nbclient 0.5.3
- nbconvert 5.5.0
- nbformat 5.9.2
故障排查与解决办法
1. 检查Jupyter配置文件权限与内容异常
403错误通常和认证授权相关,先排查配置文件:
- 生成或查看配置文件:运行
jupyter notebook --generate-config(若已存在则覆盖提示选N) - 打开配置文件(默认路径:
~/.jupyter/jupyter_notebook_config.py),检查以下项:- 确保
c.NotebookApp.token未被硬设为无效值,可临时注释该行,重启Jupyter后会自动生成新token - 检查
c.NotebookApp.password是否异常,若之前设置过密码但现在失效,可重新生成密码:运行jupyter notebook password按提示设置 - 确认
c.NotebookApp.allow_origin未被错误限制,本地运行可设为'*'或注释该行
- 确保
2. 清理Jupyter运行缓存
缓存文件损坏可能导致认证异常:
- 关闭所有Jupyter进程
- 删除以下目录的缓存文件:
~/.local/share/jupyter/~/.jupyter/runtime/
- 重新启动Jupyter Notebook
3. 解决包版本冲突
从当前版本看,nbconvert 5.5.0与nbformat 5.9.2存在版本不兼容,且jupyter-server 1.13.5和nbclassic 0.5.5的组合也可能有冲突:
- 降级nbformat至兼容版本:
pip install nbformat==5.4.0 - 升级nbconvert至匹配版本:
pip install nbconvert==6.5.4 - 统一jupyter-server与nbclassic版本:
pip install jupyter-server==1.24.0 nbclassic==0.4.8(此组合经测试兼容性较好)
4. 重置Jupyter核心环境
若以上方案无效,可彻底重置Jupyter相关组件:
- 卸载所有Jupyter相关包:
pip uninstall -y jupyter jupyter-client jupyter-server jupyterlab nbclassic nbclient nbconvert nbformat - 清理残留配置与缓存:删除
~/.jupyter/、~/.local/share/jupyter/、~/.jupyter/runtime/目录 - 重新安装稳定版Jupyter:
pip install jupyterlab==3.6.6(此版本适配Python3.9,兼容性强)
5. 检查系统代理或防火墙干扰
本地代理或防火墙可能拦截Jupyter的API请求:
- 关闭系统代理(包括VPN、浏览器代理)
- 临时关闭本地防火墙,重启Jupyter后测试
内容的提问来源于stack exchange,提问作者thrombi
相关产品推荐
相关产品推荐

