设置 jupyter notebook 可远程访问&&设置jupyer 权限问题&

首先是要 安装 Anaconda

默认情况下,安装好 Anaconda 后打开 jupyter notebook, 访问本地
localhost:8888 即可。但是如果要访问另一台机器,比如远端服务器上的 notebook, 即默认是不支持 172.104.105.119:8888 这样的访问,需要额外配置。

设置 jupyter notebook 可远程访问的官方指南在这里,在远端服务器上执行以下操作:

1. 生成一个 notebook 配置文件

默认情况下,配置文件 ~/.jupyter/jupyter_notebook_config.py 并不存在,需要自行创建。使用下列命令生成配置文件:

jupyter notebook --generate-config

如果是 root 用户执行上面的命令,会发生一个问题:

Running as root it not recommended. Use --allow-root to bypass.

提示信息很明显,root 用户执行时需要加上 --allow-root 选项。

jupyter notebook --generate-config --allow-config

执行成功后,会出现下面的信息:

Writing default config to: /root/.jupyter/jupyter_notebook_config.py

2. 生成密码

自动生成

从 jupyter notebook 5.0 版本开始,提供了一个命令来设置密码:jupyter notebook password,生成的密码存储在 jupyter_notebook_config.json

$ jupyter notebook password
Enter password:  ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json

手动生成

除了使用提供的命令,也可以通过手动安装,我是使用的手动安装,因为jupyter notebook password 出来一堆内容,没耐心看。打开 ipython 执行下面内容:

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed 这一串就是要在 jupyter_notebook_config.py 添加的密码。

c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

3. 修改配置文件

jupyter_notebook_config.py 中找到下面的行,取消注释并修改。

c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口

以上设置完以后就可以在服务器上启动 jupyter notebook,jupyter notebook, root 用户使用 jupyter notebook --allow-root。打开 IP:指定的端口, 输入密码就可以访问了。

需要注意的是不能在隐藏目录 (以 . 开头的目录)下启动 jupyter notebook, 否则无法正常访问文件。

Jupyter运行时出现下面的错误:Unexpected error while saving file: arma/Untitled.ipynb [Errno 13] Permission denied:

执行如下代码修改Jupyter的一部分文件的权限(执行完之后重新启动即可):

sudo chmod 777 ~/.local/share/jupyter/
cd ~/.local/share/jupyter/
ls
sudo chmod 777 runtime/
cd runtime/
ls

改完之后就没有问题啦!

今天用Jupyter又出问题了,过程是这样的,我复制了之前制作的一个模板文件夹,cd进去之后运行Jupyter.py文件,自动打开浏览器之后显示如下错误:

an error occurred while creating a new notebook

Create Untitled.ipynb [Errno 13] Permission denied:

当你点击浏览器上的python2或者python3来创建新的Untitled.ipynb时,就会提示你Permission denied:,权限不足~

好吧,既然你说权限不足,那我们就用sudo指令看看会怎样吧(结果如下):

好,提示我你不要用sudo,没用的,就是创建不了,接着想:会不会是应为文件夹的权限问题导致我没有权限写数据到问价夹当中呢?于是我检查了之前能创建性的notebook的文件夹的权限:l

上图是我已经修改过之后的结果(修改指令:chmod改权限  chown改归属者  chgrp改归属组):

   文件夹的权限应该为:drwxrwxr-x

   文件的组应该属于:ubuntu-mm

  文件的归属者应该为:ubuntu-mm

同样的内部的文件的权限如下:

如果你的文件夹或者文件夹或者文件不是上面你的权限情况,那你可是改成上面的情况适宜时,说不定这样你就能用啦~

1、修改 tmp 目录所属用户为 root,用户组为 root

chown -R root:root /tmp

2、修改 tmp 目录为可写权限

chmod -R 777 /tmp

 

当时用Anaconda安装多个版本的python的时候,或者由于多次卸载anaconda时,导致python的kernel内核安装路径混乱,使得Jupyter notebook不可用。

解决办法

  1. 首先打开Anaconda Prompt
  2. 输入jupyter kernelspec list查看安装的内核和位置
  3. 进入安装目录,打开kernel.jason, 查看python的编辑器的路径文件是否与安装路径一样
  4. 如果不一样,那么输入 python -m ipykernel install --user, 重新安装内核即可
  5. 重启jupyter notebook 即可使用。 
  6. jupyter kernelspec uninstall yourKernel

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章