如何在云端服务器运行Jupyter Notebook

2020-05-03 科技 180阅读
作者:胡贲
链接:http://zhuanlan.zhihu.com/p/20226040
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以下是主要步骤,前提是,拥有一个虚拟机,并且有ssh账号登陆。没有的同学可以自己在阿里云之类的服务商处申请,个人推荐”1元免费试用“1个月的微软云。一般这些主机服务商都会提供一个基本的教程,因此从设置主机直到创建账号,ssh登陆都应该不是什么问题。
接下来,下载miniconda,一个科学计算环境管理软件,Anaconda的最小发型版本(假设运行的是64位Linux 虚拟机):
wget "https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh"
然后安装:
sudo bash Miniconda-latest-Linux-x86_64.sh
然后通过miniconda的环境管理软件,conda安装必要被ipython和ipython-notebook.
conda install ipython
conda install ipython-notebook
接下来,我们需要创建一个名为nbserver的配置。
ipython profile create nbserver
这将创建一个文件夹,其中包含一些原始的配置文件。我们跳转到这个文件夹进行一些配置
cd ~/.ipython/profile_nbserver/
由于ipython Notebook要求https连接,因此我们需要创建一个ssl证书。
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
命令执行后根据提示输入信息就好,当然,这个证书并未获得认证,因此用chrome之类的浏览器访问的时候会得到一些错误信息,这个问题我们一会儿说。接下来我们创建一个密文的密码。
python -c "import IPython;print IPython.lib.passwd()"
运行之后进入一个创建密码hash值的小程序,根据提示输入你想用的安全口令:
Enter password:
Verify password:
sha1:b86e933199ad:a02e9592e59723da722.. #这是我的密码的hash值,后段被删除,你的密码得到的结果应该不同
然后开始编辑配置文件,通过vi编辑文件的命令如下:
vi ipython_notebook_config.py
这个文件可能不存在,那么通过vi创建一个,配置文件的内容如下:
c = get_config()
# 所有matplotlib的图像都通过iline的方式显示
c.IPKernelApp.pylab = 'inline'
# 这一行指向我们刚刚创建的ssl证书
c.NotebookApp.certfile = u'/home/azureuser/.ipython/profile_nbserver/mycert.pem'
# 给出刚刚创建的密码的哈希值
c.NotebookApp.password = u'sha1:b86e933199ad:a02e9592e5 etc... '
c.NotebookApp.ip = '*'
# 给出运行的端口,ipython默认为8888
c.NotebookApp.port = 8888
# 禁止在运行ipython的同时弹出浏览器
c.NotebookApp.open_browser = False
编辑完成以后按两次shift+z 保存退出
配置完毕以后就可以运行ipython Notebook的服务端了:
jupyter notebook --config=/home/azureuser/.ipython/profile_nbserver/ipython_notebook_config.py #给出你刚才创建的nbserver路径,这里为微软azure云默认的情况
当然,微软云还需要配置一下服务器端的endpoint,将云主机的https端口(443)指向内部的8888端口。
在你的浏览器地址栏输入:
https://www.youappdomain.com
这时候会遇到https提示根证书并非认证证书,不用管这个提示继续进入,voila,你的ipython Notebook server架好啦!
输入你刚才创建的密码,就可以开始像在本地一样使用了。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com