连接服务器的jupyter notebook

天大地大妈咪最大 提交于 2019-12-31 21:23:01

连接服务器可视化编程

方案1:服务器的jupter notebook 配置

1. 在命令行生产配置文件:

$ jupyter notebook --generate-config

2.设置密码:

 

方法 A(5.0vision)推荐

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

方法 B

在ipython或者python 运行环境中调用设置密码>>from notebook.auth import passwd

In [2]: passwd()
Enter password:  xxxxxx
Verify password: xxxxxx
Out[2]: 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'  # 这一密钥要复制到下面的配置文件中



3.修改配置文件


用任意编辑器打开刚刚生产的文件,一般linux在user文件夹下/.jupyter, win 默认安装在c:\user\user.jupyter 下:

找到下面几个部分进行修改 :

 


c.NotebookApp.password = u'sha:***'   #引号前记得写u,复制刚刚得到的密文于此
c.NotebookApp.open_browser = False # 默认不在本地浏览器中打开

c.NotebookApp.ip = '*'  # *代表监听所有端口,外网可以访问
c.NotebookApp.allow_remote_access=True #允许外部访问

c.NotebookApp.port =9900    # 设置一个本机端口来访问,建议不要设为8888
c.NotebookApp.notebook_dir ='jupyter'      #保存jupyter notebook的路径,可以自己设置,建议绝对路径。若是服务器的用户登录,会自动在前面加上用户目录。若路径报错,可注释掉


4.保存,在服务器上运行jupyter notebook

 

复制输出的 http://服务器ip:9900/ 在本地浏览器上打开,输入设置的密码即可。

 

(可选)使用https

 

3 生成SSL证书
因为Jupyter必须要用https进行登录,所以需要生成ssl证书。

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



上面的命令需要填写一些个人信息,可以自动生成证书,但是这个证书是不安全的,只能在测试过程中使用。

 

在jupyter_notebook_config.py文件中加入:(路径改为文件的绝对路径)

c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key’

 

就可以使用https了。这个证书是不安全的,只能在测试过程中使用

 

 


5 端口转发


为了使得外网能够访问位于内网的Jupyter,还需要进行端口转发:

进入路由器找到虚拟服务器
设置一个外部端口号码例如39887—对应内部Juypter端口如8888,在填入安装Jupyter计算机在局域网的对应IP如192.168.2.123。
例如路由器的公网IP为: 10.10.10.10
则使用10.10.10.10:39887即可访问对应的Jupyter页面
 

问题:

 

  File "/usr/lib/python3.5/socket.py", line 732, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

解决:

这个问题主要是由于远程打开的时候,并没有allow_remote_access=True

输入命令

在 ~/.jupyter/jupyter_notebook_config.py 中加入:
 

c.NotebookApp.allow_remote_access=True


方案2:pycharm 专业版 通过配置ssh连接服务器上的项目目录,可用服务器上的python解释器

 

 

ref:https://blog.csdn.net/dongfangxiaozi_/article/details/88816644

https://blog.csdn.net/u014636245/article/details/70922960

https://blog.csdn.net/computerme/article/details/78751670
https://blog.csdn.net/computerme/article/details/78751670

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!