使用Jupyter Notebook搭建在线Python交互式运行容器

Jupyter Notebook是成熟的多语言WEB端在线编辑、运行、调试、分享、协作的集成解决方案,其优秀的WEB UI设计、流畅的运行体验和完善的功能定制收获了诸多的好评。它支持Python, R, Scala等多种语言的交互式编辑、编译、连接、调试、运行,以及LATEX编写等。本次我们以Python为例,介绍Jupyter Notebook的搭建以及远程web访问。

本文由香菇肥牛原创,原文链接为https://qing.su/article/127.html 未经允许,不得转载。谢谢!

本教程的运行环境为Debian 8.2 64bit, 其他环境未经测试,但新一点的Linux发行版应该都可以安装。实测在一个256MB内存/单线程CPU的VPS上可以流畅运行。搭建之前,请将域名解析至你的服务器,并设置好Hostname, 更新好源。

安装Jupyter Notebook

Jupyter Notebook套件集成在Anaconda 3 工作包中,因此我们可以直接安装Anaconda 3来实现必要的Python环境和Jupyter Notebook的安装。依次执行:

1
2
wget https://repo.continuum.io/archive/Anaconda3-4.3.1-Linux-x86_64.sh
bash Anaconda3-4.3.1-Linux-x86_64.sh

然后按照提示安装即可。安装过程中会有提示请您选择程序安装位置,这里我们建议放在一个单独的目录,或者放在某个/home目录中。安装过程应颇为顺利,若有报错请您贴出日志,我将尽量分析解答。

配置Jupyter Notebook

安装完毕之后的Jupyter Notebook不能直接访问,需要经过一系列的配置。首先,我们新建一个Jupyter配置文件。进入程序安装目录bin文件夹,执行:

1
jupyter notebook --generate-config

这样就生成了一个配置文件。然后,我们为远程访问设置一个密码。在命令行下输入python进入Python的命令提示界面,然后执行下面的命令:

1
from notebook.auth import passwd; passwd()

这时会提示输入密码。输入密码后将会生成一串SHA1加密的字符,请您复制这串字符。

最后我们对Jupyter配置文件进行更改。用文本编辑器打开之前生成的配置文件,在任意位置添加如下的行:

1
2
3
4
c.NotebookApp.ip = '*'
c.NotebookApp.password = u'sha1:bcd259ccf:cdf813dab731929efb78a4bb98e21'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 80

其中,第一行非常关键,它决定了Jupyter是否能够被公网访问到。第二行需要在sha1:后填入刚才生成的密码Hash码。第三行填False, 因为我们不需要在远程服务器上打开浏览器,而是在本地用浏览器访问。第四行改成你打算访问的服务器的端口,改成HTTP的80端口就可以避免输入端口号了。

最后,我们让Jupyter Notebook开机启动。编辑/etc/rc.local文件,在最后一行之前添加一行/path/to/jupyter notebook然后保存退出。现在reboot重启之后,访问解析到该IP上的域名,既可以使用Jupyter Notebook编辑、运行Python了。

 

至此,我们安装了Jupyter Notebook + Python 3, 并配置了Jupyter Notebook使其开放外网的访问。本文由香菇肥牛原创,原文链接为https://qing.su/article/127.html 未经允许,不得转载。若您在安装和使用过程中遇到问题,欢迎在文章下方留言与我讨论。

2 thoughts on “使用Jupyter Notebook搭建在线Python交互式运行容器”

  1. 前面没问题,加入开机启动貌似无效 , 开Ssh 运行jupyter notebook 正常。

    环境是帮瓦工 KVM Debian8 64

    Reply

Leave a Comment