【问题标题】:Jupyter Creating Notebook failed: FORBIDDENJupyter 创建笔记本失败:禁止
【发布时间】:2017-05-22 19:04:17
【问题描述】:

我刚刚将 Jupyter 升级到 4.3.1 版本 虽然我可以打开以前创建的 ipynb 文件,但我无法创建新文件。

当我尝试创建一个新的笔记本文件时,我会弹出一个窗口说:
创建笔记本失败
创建新笔记本时出错
禁止

在终端我注意到这个输出:

[W 12:53:23.375 NotebookApp] 403 POST /api/contents (::1): '_xsrf' argument missing from POST
[W 12:53:23.383 NotebookApp] 403 POST /api/contents (::1) 8.92ms referer=http://localhost:8888/tree?token=e7fbbb58516dc1359fcc26a1079093166a1f713ee5b94ccd

我将 Jupyter 与 Python 3.5.2 和 IPython 5.1.0 一起使用

【问题讨论】:

  • 可能是由添加到 jupyter 的新强制令牌身份验证引起的。 blog.jupyter.org/2016/12/21/jupyter-notebook-4-3-1
  • 这可能是一个错误。至少错误消息应该提供更多信息。也许您应该在 jupyter-notebook 的 github 问题跟踪器上提交错误报告? github.com/jupyter/notebook
  • 当我在浏览器中打开 jupyter notebook 时清理浏览器 cookie 时发生这种情况。

标签: jupyter-notebook


【解决方案1】:

我必须在浏览器中启用 cookie(我故意禁用了它)。然后“禁止”错误消失了,现在一切正常。

普遍接受的防止 XSRF 的解决方案是使用不可预测的值对每个用户进行 cookie,并将该值作为附加参数包含在您网站上的每个表单提交中。

发件人:http://tornado.readthedocs.io/en/latest/guide/security.html#cross-site-request-forgery-protection

【讨论】:

    【解决方案2】:

    我刚才遇到了这个问题,但我注意到它在 Edge 中有效。在我的情况下,删除所有浏览器缓存(包括 Chrome 中的 cookie)解决了这个问题。

    【讨论】:

      【解决方案3】:

      确认问题的另一种方法是在另一个浏览器中打开您的 Jupyter 会话,您可能会被重定向到如下屏幕:

      如果你打开一个新的控制台并输入

      jupyter notebook list
      

      您将看到您当前的笔记本,并且该 URL 将包含一个令牌。在新标签页中打开它,问题就解决了。

      输出命令应如下所示:

      Currently running servers:
      http://localhost:8888/?token=cbad1a6ce77ae284725a5e43a7db48f2e9bf3b6458e577bb :: <path to notebook>
      

      【讨论】:

      • 这适用于您打开的书突然停止允许保存检查点的情况。显然密码超时?打开一个新窗口并在新窗口中输入密码将重新启用打开选项卡上的保存功能。
      • 我只是将令牌粘贴到浏览器中,现在它可以工作了
      【解决方案4】:

      Jupyter 阻止非本地请求。要从外部地址访问 Jupyter,我们可以使用以下参数执行它:

      jupyter notebook --NotebookApp.allow_origin=* --NotebookApp.allow_remote_access=1
      

      【讨论】:

        猜你喜欢
        • 2017-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-30
        • 2021-05-21
        • 2020-06-05
        • 1970-01-01
        相关资源
        最近更新 更多