Jupyter Notebook:访问文件被拒绝

问题描述 投票:0回答:5

我正在尝试在 Ubuntu 21.10 上运行 Jupyter 笔记本。我已经安装了 python、jupyter Notebook 以及所有各种先决条件。我将

export PATH=$PATH:~/.local/bin
添加到我的
bashrc
中,以便可以从终端操作命令
jupyter notebook

当我从终端调用

jupyter notebook
时,我从浏览器收到以下错误消息:

Access to the file was denied.

The file at /home/username/.local/share/jupyter/runtime/nbserver-260094-open.html is not readable.

    It may have been removed, moved, or file permissions may be preventing access.

我正在使用最新版本的 FireFox。

我已经阅读了许多有关此问题的指南,这似乎是一个权限错误,但我使用的指南都没有解决该问题。使用

sudo
没有帮助,事实上它会导致
Exception: Jupyter command "jupyter-notebook" not found.
被抛出。

话虽这么说,我仍然能够访问笔记本服务器。如果我进入终端并单击笔记本服务器的

localhost:8888
或 IP 地址,那么它会将我带到笔记本,一切都可以正常运行。

我想解决这个问题,以便当我运行

jupyter notebook
时,我会被带到服务器,不需要返回终端窗口并单击 IP 地址。如果我同时运行多个笔记本,这很不方便,并且会减慢我的速度。

有关此问题的任何帮助将不胜感激!

python ubuntu jupyter-notebook permissions
5个回答
42
投票

我也遇到了同样的问题。

Ubuntu 20.04.3 LTS 铬版本 96.0.4664.110

这是我的案例的解决方案:

使用以下命令创建配置文件:

jupyter notebook --generate-config

编辑配置文件

~/.jupyter/jupyter_notebook_config.py
并设置:

c.NotebookApp.use_redirect_file = False

确保此配置参数从行首开始。如果您在行首留一个空格,您将收到一条消息,表明对该文件的访问被拒绝。

否则您可以清理并重新安装JupyterLab

jupyter lab clean --all
pip3 install jupyterlab --force-reinstall

12
投票

如果有人好奇,问题的原因是

file://
URI 方案无法访问直接位于主目录下的隐藏目录中的文件(在您的情况下为
~/.local
)。

您可以通过以下方式重现问题:

mkdir ~/.test && echo "abc" > ~/.test/file.html && xdg-open ~/.test/file.html

我在RFC8089中找不到任何关于此行为的参考,而且我也不明白Jupyter作者是如何错过这个问题的。

正如 LSeu 所建议的,绕过本地重定向文件的方法是运行:

echo "c.NotebookApp.use_redirect_file = False" >> ~/.jupyter/jupyter_notebook_config.py

另一个解决方案是运行

jupyter notebook --no-browser
并 (Ctrl) 单击终端中的链接。


1
投票

对于那些运行安装了 snap 的 Firefox 的用户:

我认为这个问题更多地与随 Snap 安装的 Firefox 有关,该过程中的某个地方不允许 Firefox 访问其沙盒环境中 /home/user 文件夹内的隐藏目录。

本线程中未提及的另一个解决方案(如果您不想使用其他浏览器安装)是将

JUPYTER_RUNTIME_DIR
环境变量设置为
/home/user
文件夹中的非隐藏目录:

# Ubuntu 22.04.1 LTS
# append env variable to persistent user env file.  requires relogging in
echo JUPYTER_RUNTIME_DIR=/home/user/jupyter_runtime >> ~/.pam_environment
reboot

1
投票

或者,尝试直接访问其他建议的 URL:

 http://localhost:8888/lab?token=<your-access-token>
 http://127.0.0.1:8888/lab?token=<your-access-token>
(这就是设置
...use_redirect_file = False
的作用)


0
投票

我通过执行以下操作在 Windows 11 电脑中解决了此问题:

  • 转到“Windows Defender 安全中心”
  • 滚动并单击“病毒和 威胁防护设置”
  • 向下滚动到“受控文件夹”
    访问”启用它
  • 选择“允许应用程序通过受控文件夹”
    访问”
  • 单击“添加和允许的应用程序”并选择文件“C:\ProgramData naconda3\pythonw.exe”

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.