本地远程访问Ubuntu16.04.3服务器上的Jupyter notebook

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bryant_meng/article/details/78570164

Jupyter Notebook远程访问


1 主要参考

http://www.cnblogs.com/wuyida/p/6300210.html
(Ubuntu环境下Anaconda安装TensorFlow并配置Jupyter远程访问)

2 Jupyter安装详细流程

2.1 Jupyter安装

http://jupyter.org/install.html

While Jupyter runs code in many programming languages, Python is a requirement (Python 3.3 or greater, or Python 2.7) for installing the Jupyter Notebook itself.

网站介绍安装Jupyter有两种方法:

Installing Jupyter using Anaconda

Installing Jupyter with pip

本文都是基于第二种方法来安装的,现在详细介绍一下

As an existing or experienced Python user, you may wish to install Jupyter using Python’s package manager, pip, instead of Anaconda.

If you have Python 3 installed (which we recommended):

python3 -m pip install --upgrade pip 
python3 -m pip install jupyter

不建议 upgrade pip,我用的是 1.0.0 版本

注意upgrade前面是两个-符号
接下来进行Jupyter的配置

2.2Jupyter配置

2.2.1生成配置文件

jupyter notebook --generate-config

注意generate前面两个-,如果提示–allow-root,就在上面指令后面加上–allow-root,注意allow前面是两个-

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

会在 /your_home/.jupyter 目录下生成一个名为 jupyter_notebook_config.py 的配置文件

2.2.2准备配置的密码

打开python,输入以下内容

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

注意保存上面的Out[2]中生成的内容

2.2.3生成pem和key文件

使用如下命令会在当前路径下生成一个mykey.key和一个mycert.pem文件,这两个文件会在后面的配置中使用到。下面的命令会生成有效期为365天的certificate文件。

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem

2.2.4配置配置文件

打开第一步中的jupyter_notebook_config.py文件。

vim ~/.jupyter/jupyter_notebook_config.py

需要配置的选项如下,vim中**:wq** 是保存并退出,:/XXX 可以快速查找 XXX

c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'
c.NotebookApp.ip = '*'
c.NotebookApp.password = u'sha1:bcd259ccf...<your hashed password here>'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888

注释

c.NotebookApp.certfile设置为步骤2.2.3中生成mycert.pem文件所在的位置
c.NotebookApp.keyfile设置为步骤2.2.3中生成mykey.key文件所在的位置
c.NotebookApp.ip设置为*目的是 bind on all interfaces (ips) for the public server
c.NotebookApp.password设置为2.2.2中out[2]的内容
c.NotebookApp.port 是服务器端口号,结合自己的情况来,8888只是一个示例

例如

c.NotebookApp.certfile = u'/root/userfolder/mycert.pem'
c.NotebookApp.keyfile = u'/root/userfolder/mykey.key'
c.NotebookApp.ip = '*'
c.NotebookApp.password = u'sha1:bcd259ccf...<your hashed password here>'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8888

配置完成后,在TensorFlow环境下输入jupyter notebook --allow-root 命令,在远程中打开Chrome浏览器,输入https://ip:8888,提示你输入密码。然后就可以远程访问并使用 jupyter notebook 了。
Note:ip是服务器的ip地址,不是本地的,8888替换连接服务器的端口号。QQ浏览器,360浏览器也行。
这里写图片描述


3 错误总结

3.1 No address associated with hostname

jupyter notebook -socket.gaierror: [Errno -5] No address associated with hostname錯誤及解決方式
jupyter notebook --allow-root --no-browser --ip=0.0.0.0
或者 vim ~/.jupyter/jupyter_notebook_config.py,把 ip 修改成如下的形式

c.NotebookApp.ip = '0.0.0.0'

3.2 ValueError: signal only works in main thread

Python之Anaconda启动过程中的异常错误的解决

卸了 tornado 再重装

conda uninstall jupyter tornado
conda install jupyter tornado

引用博主的一句话,“常从河边走,偶尔会湿鞋,这些工具偶尔也会报错的,出了问题,就尝试解决就好了。”

展开阅读全文

没有更多推荐了,返回首页