Ubuntu系统启动Jupyter Notebook报文件不可读权限错误求助
问题前置说明
runtime目录下的.html和.json文件本身不需要执行权限,仅有读写权限属于正常配置,不是问题根源。
问题核心成因
- 用sudo执行jupyter相关命令时,sudo会重置系统环境变量,找不到conda base环境中安装的jupyter二进制文件,同时还会导致部分jupyter生成的文件属主变成root,后续普通用户启动时无法读取。
- 此前执行
chmod 777属于错误操作,反而可能带来额外权限异常。
修复步骤
- 第一步:终止所有正在运行的jupyter进程,避免文件被占用
ps aux | grep jupyter | grep -v grep | awk '{print $2}' | xargs kill -9
- 第二步:修正jupyter相关目录的属主和权限,将
<user>替换为你自己的Ubuntu用户名
# 修正jupyter配置和运行目录权限 sudo chown -R <user>:<user> ~/.local/share/jupyter/ ~/.jupyter/ chmod -R 755 ~/.local/share/jupyter/ ~/.jupyter/ # 修正miniconda目录权限(如果你的miniconda安装路径不是~/miniconda3请自行替换) sudo chown -R <user>:<user> ~/miniconda3/
- 第三步:在激活conda base环境的状态下,重装jupyter,不要加sudo
pip install --upgrade --force-reinstall jupyter
- 第四步:测试启动,不要加sudo
jupyter notebook
如果启动后Firefox仍然提示文件不可读,属于桌面环境和jupyter的文件关联问题,不需要额外修复,直接复制终端输出的带token的访问链接(格式类似http://localhost:8888/?token=xxxxxx),手动粘贴到Firefox地址栏访问即可正常使用。
如果想要避免自动打开浏览器报错,可以手动修改jupyter配置:
- 执行
jupyter notebook --generate-config生成默认配置文件 - 打开
~/.jupyter/jupyter_notebook_config.py,找到# c.NotebookApp.open_browser = True,去掉注释并修改为c.NotebookApp.open_browser = False - 后续启动jupyter时就不会自动弹出浏览器,手动复制终端的token链接访问即可。
内容的提问来源于stack exchange,提问作者cliu
相关产品推荐
相关产品推荐

