搭建Jupyter Notebook远程云服务器

用Python做数据分析的同学,最习惯的IDE莫非Ipython和Jupyter莫属了。个人更倾向于Jupyter,最初源于Ipython总会无意给关掉,在内存的各种变量全没了,又要重新加载,而jupyter以浏览器的形式不会有这个问题;另一个重要原因在于,Jupyter可以方便地把输入的代码全部保存下载,而Ipython想保存相对操作复杂些(没法删掉无意义代码),因此目前重要就是用Jupyter了。

最近突发奇想,可不可以把Jupyter部署到服务器上,这样随时可以在其他电脑上登录Jupyter做分析而且不必要求安装python?万能的google没有辜负我,果然这是可以实现的,就各处搜集资料,期间也踩了一鞋坑,终于把Jupyter搭建在我的服务器上啦。主要的好处,我总结为三点:

随时可在未安装Python的电脑上使用Python(可以分享给别人)

借助服务器的性能,在服务器上做分析,解放本地计算机的CPU

不同电脑间,使用服务器jupyter可避免数据不一致

完工后的界面如下,输入密码就可以开始使用啦:

接下来介绍我搭建Jupyter云服务器的过程,以及可能会遇到的坑,只要按照步骤一步步来,应该都可以顺利安装的。

前提介绍:首先是必须要有一台服务器,现在云服务器卖的都很便宜,各大云服务商都在搞活动,这里为避免广告嫌疑就不做推荐了,大家可自行网上搜一下。

我的服务器是CentOS 6.8系统,单核 2G 内存, 1M带宽,性能一般,但足够使用。

安装过程1、安装Jupyter Notebook库我安装的是Ananconda ,这是Python的科学计算包,自带了Jupyter,因此无需此步骤。若未安装,也可单独安装

$ pip install Jupyter2、生成Jupyter Notebook配置文件$ jupyter notebook --generate-config生成的配置文件,后来用来设置服务器的配置

3、设置Jupyter Notebook密码设置密码用于设置服务器配置,以及登录Jupyter。打开Python终端,输入以下:

In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: '这里是密码'4、设置服务器配置文件

$ vim ~/.jupyter/jupyter_notebook_config.py在末尾增加以下几行配置信息(此配置信息,也可在启动Jupyter时在参数中添加,但我认为那样看起来比较乱)

c.NotebookApp.ip = '*' #所有绑定服务器的IP都能访问,若想只在特定ip访问,输入ip地址即可
c.NotebookApp.port = 6666 #将端口设置为自己喜欢的吧,默认是8888
c.NotebookApp.open_browser = False #我们并不想在服务器上直接打开Jupyter Notebook,所以设置成False
c.NotebookApp.notebook_dir = '/root/jupyter_projects' #这里是设置Jupyter的根目录,若不设置将默认root的根目录,不安全
c.NotebookApp.allow_root = True # 为了安全,Jupyter默认不允许以root权限启动jupyter5、启动Jupyter 远程服务器

$ jupyter notebook至此,Jupyter远程服务器以搭建完毕。在本地浏览器上,输入 ip地址:6666,将会打开远程Jupyter。接下来就可以像在本地一样使用服务器上的Jupyter啦~~

估计到这里,也可能会有朋友还是打不开。我说一下我遇到的坑:由于我是用的阿里云的服务器,默认6666端口是没有打开的,也就是说服务器是找不到6666端口的,需要登录到服务器的后台打开6666端口,具体方法可百度/谷歌~