我已经在jupyter笔记本上运行了大约26个小时的脚本;我没有真正使用我的电脑做任何其他事情,但它需要运行这个程序,需要大约30个小时才能完成。大约21小时后,它停止保存,我的终端出现了这样的情况:
403 PUT /api/contents/[file.ipynb] (::1): '_xsrf' argument missing from POST
(文件的地方。Ipynb]是我的jupyter笔记本的位置。它还说:
'_xsrf' argument missing from post
在笔记本的右上角。程序仍在运行,我不想重新启动jupyter notebook,不得不再次运行程序,因为我有一个截止日期,还有什么我可以做的吗?
我使用谷歌chrome,但我没有LastPass扩展或任何'%'字符在我的代码,作为另一个帖子建议。
谢谢你的帮助!
我每天使用jupyter笔记本,以前从未遇到过这个问题…直到今天。我把笔记本打开了一整天,但它没有运行任何东西,然后没有明显的原因停止自动保存,在右上角的POST错误消息中缺少“_xsrf”参数。供你参考——这是一个python3笔记本。
我不知道这个问题的原因,但我最近将我的python3版本升级到3.7.2,并将我所有的站点包升级到几天前的最新版本,这可能是原因。
至于解决方案,正如@AlexK评论中建议的那样,我在一个新的窗口(实际上是不同的浏览器)中打开同一个笔记本,使用
jupyter notebook list
在终端中获取带有登录令牌的URL。
这导致我再次打开并保存笔记本,但我上次成功自动保存后输入的信息丢失了。值得庆幸的是,我的坏实例仍然是打开的,除了保存之外,我可以简单地复制和粘贴信息,然后点击保存。因此,如果您尝试这样做,请保持已损坏的实例处于打开状态!
你可以通过启动JupyterLab来禁用XSRF检查:
jupyter lab --ServerApp.disable_check_xsrf=True
这可能意味着您的服务器没有经过令牌验证。例如,您可能已经启动了JupyterLab:
jupyter lab --NotebookApp.token='' --NotebookApp.password=''
这也可能意味着您在本地机器上运行JupyterLab,而您的服务器无法远程访问,所以这没有问题。
但是通常要注意,如果您的服务器没有身份验证,那么它很容易受到XSRF的攻击。