无法打开新的Jupyter Notebook [权限被拒绝]

63

我已经使用pip3在ubuntu 16.04上安装了Jupyter Notebook。我可以执行jupyter notebook命令,它会打开并显示当前路径目录的列表。

但是我无法创建一个新的笔记本(Python3)。它会显示以下错误信息:

保存文件时出现意外错误:Deep Learning/NN/Untitled.ipynb [Errno 13] Permission denied: '/home/ubuntu/.local/share/jupyter/notebook_secret'

31个回答

80

~/.local/share/jupyter 目录的 所有权root 更改为 user

sudo chown -R user:user ~/.local/share/jupyter 

请查看这里:https://github.com/ipython/ipython/issues/8997

冒号前的第一个user是您的用户名,冒号后的第二个user是您的组。如果您遇到了chown:[user]:illegal group name,请使用groups找到您的组,或使用sudo chown user:~/.local/share/jupyter不指定组。

编辑:在答案评论中添加-R选项。你必须将此目录内的所有文件(或~/.jupyter/内的所有文件,无论它在哪里给出PermissionError)的所有权更改为您的用户才能使其正常工作。

如果这样做失败,请更改要创建笔记本的目录的所有权。例如:mydir

sudo chown -R user:user mydir/*
注意,我用 bexgboost:root 替换了 user:user,其中 bexgboost 是我的 UNIX 用户名。

注意,我用bexgboost:root替换了user:user,其中bexgboost是我的UNIX用户名。


4
将 "~/.local/share/jupyter" 目录下的所有文件和子目录的拥有者更改为 "user" 用户,并将它们归属到 "user" 用户组。该命令为 "sudo chown -R user:user ~/.local/share/jupyter"。 - Abhijay Ghildyal
11
我们在Windows中该如何做呢? - Shruti Kar
我不得不在Ubuntu上注销并重新登录才能使其正常工作。 - Sanchit Kumar
我的系统中没有这个目录。我使用snap安装jupyter。 - Markus Bawidamann
1
在CentOS7上,我对/run/user/0/jupyter这个目录感到抱怨。我修改了/run/user/0/的所有者。 - Alfabravo

18

在我看来,将Jupyter运行在一个专门的工作簿文件夹中是一个不错的做法。

$ mkdir jupyter_folder
$ jupyter-notebook --notebook-dir jupyter_folder

'jupyter_folder'是我主目录下的一个文件夹。

这种方法不会出现任何权限问题。


1
尝试了所有的chmod和chown之后,最终通过这种方式解决了问题。 - Neeraj Sharma
受此启发,我改变了包含ipynb文件的文件夹权限,结果成功了。 - emeralddove
这在 Ubuntu 22 上完美运行,所有内容都是 Snaps。在您的 ~.zshr 或 .bashrc 中设置别名,或为每个主要项目设置别名。 - lxx

12

尝试了所有建议,但最终这个帮助了我:

sudo jupyter notebook --allow-root

在我的情况下,它没有自动启动浏览器。因此,只需从终端复制链接并手动打开。

更新: 使用此命令更改文件夹(.local)权限:

sudo chmod -R 777 .local

13
请勿使用 chmod 777!这会带来真正的安全问题。 - cirrusio
5
不!在“.local”文件夹上执行“chmod 777”是一个可怕的想法。这样会让所有人都能修改和执行你的二进制文件! - MuhsinFatih
5
详细解释一下:你的.local文件夹应该始终具有700权限,这基本上允许你自己执行所有操作。 - MuhsinFatih

7

当升级到Ubuntu 20.04时,Chromium被“转换”为snap。这正是“权限”问题的原因。我按照链接答案中所述将默认浏览器设置为/usr/bin/firefox,现在它可以正常工作了! - Olexiy
现在Ubuntu 22.04通过“snap”安装Firefox成为了一个问题... - Guillem

5

这里的最佳答案并没有完全解决问题,尽管这可能是必要的一步:

sudo chown -R user:user ~/.local/share/jupyter 

(用户应该是正在运行笔记本服务器的登录用户) 这会将文件夹所有者更改为运行服务器的用户,使其拥有完全访问权限。

在此之后,错误信息显示没有权限在~/.ipynb_checkpoints/中创建检查点文件,因此我还更改了该文件夹的所有权(先前为root)。

sudo chown -R user:user ~/.ipynb_checkpoints/

然后我能够创建并保存笔记本!


对于那些遇到错误信息为 Permission denied: .ipynb_checkpoints 的人,这是解决方案。基本上将所有权更改为当前用户,这样用户就能够创建和保存检查点。 - Michael_Zhang

3
  1. 打开Anaconda提示符
  2. 进入C:\Users\your_name文件夹
  3. 输入jupyter trust untitled.ipynb
  4. 最后,输入jupyter notebook

1
相同权限授予和拒绝 - Rocketq

2

1
我不得不对所有子文件夹运行 chown 递归命令,使用 /*。然后它就起作用了:
sudo chown -R user:usergroup /home/user/.local/share/jupyter/*

3
不需要 /* - 使用 -R 开关就足够了。 - cirrusio

1
似乎问题出在最新版本中,因此:
pip install notebook==5.6.0

必须解决这个问题!


1
  1. 创建一个配置文件:jupyter notebook --generate-config
  2. 编辑配置文件:sudo gedit /home/<用户名>/.jupyter/jupyter_notebook_config.py(你可以使用vimnano或其他任何编辑器代替gedit)。
  3. 取消注释一行并更改默认值:

修改前:# c.NotebookApp.use_redirect_file = True

修改后:c.NotebookApp.use_redirect_file = False


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接