首页 > 解决方案 > 请求实体太大:尽管配置了 max_body_size,但无法保存大型 Jupyter 笔记本

问题描述

我有一个 JupyterLab 笔记本,当我尝试保存它时会引发以下错误。

File Save Error for ld_matrix.ipynb
Invalid response: 413 Request Entity Too Large

笔记本包含一个图像图(通过Bokeh image plot),大约 200 KB(所以,不是很大)。

我尝试在 Jupyter 配置中增加c.NotebookApp.max_body_size(请参阅Jupyter 配置文档),但这没有帮助。我也试过c.NotebookApp.max_buffer_size也无济于事。

Jupyter 版本:

jupyter core     : 4.7.0
jupyter-notebook : 6.1.5
jupyter client   : 6.1.7
jupyter lab      : 2.2.9

标签: pythonjupyter-notebookipythonjupyter

解决方案


抱歉,我只有一个(潜在的)部分解决方法。当我尝试使用localtunnel连接到我的服务器时,我遇到了同样的问题,但是当我进行 ssh 端口转发时,我没有遇到问题。

jupyter --version的给出如下:

jupyter core     : 4.6.3
jupyter-notebook : 6.1.4
qtconsole        : 4.7.7
ipython          : 7.19.0
ipykernel        : 5.3.4
jupyter client   : 6.1.7
jupyter lab      : 2.2.6
nbconvert        : 6.0.7
ipywidgets       : 7.5.1
nbformat         : 5.0.8
traitlets        : 5.0.5

我启动笔记本

nohup jupyter notebook --no-browser --port=8889

我启动 ssh 端口转发

ssh -L 8889:127.0.0.1:8889 user@example.com

user@example.com是我可以访问的远程服务器上的帐户,我希望在其上运行笔记本服务器。

然后,我通过本地计算机的浏览器访问 localhost:8889 来访问笔记本。它们可以正确编辑和自动保存。

要使用 localtunnel 访问笔记本,我调用

nohup npx localtunnel --port 8889 --subdomain mysubdomain

然后尝试使用mysubdomain.loca.lt. 当我保存笔记本时,右上角出现一个棕色框,上面写着“请求实体太大”。有时当我清除所有输出时,我可以保存但并非总是如此。我确实更改了您更改的两个设置(实际上我的笔记本低于旧限制),但这没有帮助。为了确保确实设置了这些参数,我还尝试修改启动笔记本服务器的命令:

nohup jupyter notebook --no-browser --port=8889 --NotebookApp.max_buffer_size=numberofbytes --NotebookApp.max_body_size=numberofbytes

我不明白为什么 SSH 隧道会神奇地为我解决这个问题!理想情况下,我会让其他人只使用笔记本密码而不是我在远程服务器上的帐户密码来编辑我的笔记本,因此我希望使用像 localtunnel 这样的服务。


推荐阅读