如何正确配置 Snap'd Firefox 以打开由 Jupyter Notebook 启动器生成的本地 html 文件?

N0r*_*ert 5 permissions firefox snap jupyter 21.10

我目前运行的是 Ubuntu MATE 21.10。
\n作为实验(准备 Firefox deb \xe2\x86\x92 Snap 迁移),我已从中删除了 deb 打包的 Firefox

\n
sudo apt-get autopurge firefox\n
Run Code Online (Sandbox Code Playgroud)\n

并安装了 Firefox 的 Snap 版本

\n
snap install firefox\n
Run Code Online (Sandbox Code Playgroud)\n
\n
$ snap list firefox \nName     Version   Rev  Tracking       Publisher  Notes\nfirefox  96.0.2-1  886  latest/stable  mozilla\xe2\x9c\x93   -\n
Run Code Online (Sandbox Code Playgroud)\n
\n

其权限是默认的:仅禁用“使用任何连接的操纵杆”和“读取网络设置访问权限”。

\n

我还通过此系统上的官方存储库安装了 Jupyter Notebook

\n
sudo apt-get install jupyter-notebook\n
Run Code Online (Sandbox Code Playgroud)\n

当我从终端启动 Jupyter Notebook 时,jupyter-notebook它会显示一些问候消息:

\n
\n
$ jupyter-notebook \n[I 18:24:31.237 NotebookApp] Serving notebooks from local directory: /home/i\n[I 18:24:31.237 NotebookApp] Jupyter Notebook 6.2.0 is running at:\n[I 18:24:31.237 NotebookApp] http://localhost:8888/?token=7d0bbefd6ff58eddf9a1dbbd3d63e273282311d5b346cbe3\n[I 18:24:31.237 NotebookApp]  or http://127.0.0.1:8888/?token=7d0bbefd6ff58eddf9a1dbbd3d63e273282311d5b346cbe3\n[I 18:24:31.237 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n[C 18:24:31.295 NotebookApp] \n   \n   To access the notebook, open this file in a browser:\n       file:///home/i/.local/share/jupyter/runtime/nbserver-2252-open.html\n   Or copy and paste one of these URLs:\n       http://localhost:8888/?token=7d0bbefd6ff58eddf9a1dbbd3d63e273282311d5b346cbe3\n    or http://127.0.0.1:8888/?token=7d0bbefd6ff58eddf9a1dbbd3d63e273282311d5b346cbe3\n\n
Run Code Online (Sandbox Code Playgroud)\n
\n

然后打开 Firefox,其中包含错误消息:

\n
\n

对文件的访问被拒绝

\n

/home/i/.local/share/jupyter/runtime/nbserver-2252-open.html 处的文件不可读。

\n

它可能已被删除、移动,或者文件权限可能阻止访问。

\n
\n

在同一台机器上,我可以使用终端访问该文件

\n
\n
$ ls -al /home/i/.local/share/jupyter/runtime/nbserver-2252-open.html\n-rw-rw-r-- 1 i i 673 Jan 28 18:24 /home/i/.local/share/jupyter/runtime/nbserver-2252-open.html\n
Run Code Online (Sandbox Code Playgroud)\n
\n

或使用 deb 打包的 Epiphany。

\n

http://localhost:8888/?token=7d0bbefd6ff58eddf9a1dbbd3d63e273282311d5b346cbe3我已经知道可以通过访问本地主机的 URL ( \nor )来解决此问题http://127.0.0.1:8888/?token=7d0bbefd6ff58eddf9a1dbbd3d63e273282311d5b346cbe3,但它不方便用户使用,并且会破坏正常的预期工作流程。

\n

WU-*_*ANG 3

只需制作一个发射器来规避快速约束即可。

一个简单的启动器看起来像:

#!/bin/bash
export JUPYTER_DATA_DIR=/home/$USER/Public
export JUPYTER_RUNTIME_DIR=/home/$USER/Public

jupyter-notebook
Run Code Online (Sandbox Code Playgroud)

...或者跳过启动器并在方便的地方设置环境变量。