Jupyter Notebook无法保存:帖子中缺少“ _xsrf”参数

V P*_*V P 27 python google-chrome anaconda jupyter-notebook

我已经在jupyter笔记本上运行了大约26个小时的脚本;我还没有真正将计算机用于其他用途,但是它需要运行此程序,该程序大约需要30个小时才能完成。大约21个小时后,它停止保存了,我的终端上显示了以下内容:

403 PUT /api/contents/[file.ipynb] (::1): '_xsrf' argument missing from POST
Run Code Online (Sandbox Code Playgroud)

其中[file.ipynb]是我的jupyter笔记本的位置。它还说:

'_xsrf' argument missing from post
Run Code Online (Sandbox Code Playgroud)

再次在笔记本的右上角。该程序仍在运行,并且我不想重新启动jupyter Notebook并且不得不再次运行该程序,因为我有最后期限,还有什么可以做的吗?

我使用的是谷歌浏览器,但我的代码中没有LastPass扩展名或任何'%'字符,如另一篇文章所建议的那样。

谢谢你的帮助!

cax*_*atl 55

抱歉,就您的截止日期而言,这可能来晚了...我发现的最简单的方法是:

https://github.com/nteract/hydrogen/issues/922#issuecomment-405456346

只需在同一内核上打开另一个笔记本,问题就神奇地消失了。您可以再次保存以前显示该_xsrf错误的笔记本。

如果您已经关闭了Jupyter主页,则可以在启动Jupyter的终端上找到指向该链接的链接。

  • 这救了我的命。如果我没有找到这个解决方案,4 天的工作量就会白费。谢谢你! (41认同)
  • 我不需要打开新笔记本。相反,我重新打开了[tree](http://localhost:8888/tree),并重新连接了内核。在某个时候我还重新启动了内核。 (17认同)
  • 这就是我喜欢 stackoverflow 的原因 (12认同)
  • 请注意,解决方法要求之前创建笔记本,因此请打开另一个现有的非运行笔记本,不要创建新笔记本或打开正在运行的笔记本,这两种情况都会引发相同的错误。 (4认同)
  • 在刷新笔记本列表之前,我什至不被允许打开新笔记本。之后我打开一个新笔记本,错误就消失了。 (3认同)

tho*_*efe 10

只需刷新树选项卡就对我有用。


Dav*_*art 9

您可以通过启动 JupyterLab 来禁用 XSRF 检查:

jupyter lab --ServerApp.disable_check_xsrf=True
Run Code Online (Sandbox Code Playgroud)

这可能意味着您的服务器未经过令牌身份验证。例如,您可能已通过以下方式启动了 JupyterLab:

jupyter lab --NotebookApp.token='' --NotebookApp.password=''
Run Code Online (Sandbox Code Playgroud)

这也可能意味着您正在本地计算机上运行 JupyterLab,并且您的服务器无法远程访问,所以这很好。

但一般来说请注意,如果您的服务器没有身份验证,则很容易受到 XSRF 的攻击。


Big*_*gsy 7

我每天使用jupyter笔记本,直到今天为止从未遇到过此问题。我整天打开笔记本电脑,但是笔记本电脑什么都没运行,然后无明显原因停止自动保存,并'_xsrf' argument missing from POST显示右上角的错误消息。仅供参考-这是python3笔记本。

我不知道此问题的原因,但是最近我已将python3版本升级到3.7.2,并将几天前所有站点包都升级到了最新版本,这可能是原因。

至于解决方案,正如@AlexK的评论所建议的那样,我在新窗口(实际上是不同的浏览器)中打开了同一笔记本,使用

jupyter notebook list
Run Code Online (Sandbox Code Playgroud)

在终端中获取带有登录令牌的URL。

这导致我再次打开笔记本并可以保存笔记本,但是自上次成功自动保存以来输入的信息丢失了。值得庆幸的是,我坏掉的实例仍然处于打开状态,除了保存以外,还可以进行其他工作,因此我可以简单地复制并粘贴信息,然后单击保存。因此,如果尝试此操作,请保持断开的实例处于打开状态!

  • 打开第二个选项卡后,您应该能够返回第一个选项卡并保存,因此您甚至不必复制并粘贴到新选项卡。至少,这对我来说是这样的。 (3认同)

小智 7

唯一对我有用的解决方案是:

  1. 我在 chrome 中打开了一个新标签
  2. 我粘贴了:http://localhost:8888/?token=......
  3. 然后我去了我原来的笔记本,我能够保存它


mus*_*ano 5

当我单击“保存”按钮时,出现此错误。根据这篇文章和其他网站的答案,我刚刚找到了解决方案。我的 jupyter 笔记本是通过 pip 安装的。因此,我通过在 Windows 命令行中输入“jupyter notebook”来访问它。

(1)打开一个新的命令窗口,然后打开一个新的jupyter笔记本。尝试在旧笔记本中再次保存,这次错误是“失败:禁止”

(2) 然后在旧笔记本中,单击“下载为”,它将弹出一个新窗口,询问您令牌。

在此输入图像描述

(3)打开另一个命令窗口,然后打开另一个jupyter笔记本,输入“jupyter笔记本列表”将“token=”后面和::之前的代码复制到刚才看到的框中。你可以节省这个时间。如果失败,您可以尝试列表中的另一个令牌


GDB*_*GDB 5

我遇到的解决方案似乎太简单了,但确实有效。转到/ tree aka Jupyter主页,然后刷新浏览器。工作了。

  • 这对我有用,而打开另一个笔记本的解决方案在我的情况下失败了。 (6认同)
  • 谢天谢地,我可以看到我点赞了哪些帖子,这样我就知道当我忘记并在一年后回来时应该使用哪种解决方案。 (4认同)

Tor*_*chi 5

就我而言,这个问题是通过单击“内核”(显示在笔记本顶部)然后单击“重新连接”解决的。

添加注释:在某些版本的 Jupyter 中,没有“重新连接”。