CentOS云端安装JupyterNotebook
在阿里云的CentOS云服务器上安装完整版的Anaconda,并启动Jupyter Notebook,从而能够在任何电脑上远程登录服务器编写Python代码或Markdown文章。零基础,只需了解阿里云服务器基本操作。
安装Anaconda
从命令行窗口登录到你的服务器,MacOS用终端,Win10用cmd。
先使用下面的命令安装bzip2
sudo yum instlal bzip2
有教程要求先执行
sudo yum update
,但我不建议这么做。如果你后面遇到问题的话再使用这个命令。
因为Python和Jupyter Notebook以及数百个工具包都包括在Anaconda软件中,所以我们一步到位,直接安装Anaconda。
然后打开Anaconda官网,查看最新的Anconda版本。
官网地址 https://www.anaconda.com/products/individual
如下图所示,复制Linux的【64-Bit (x86) Installer (529 MB)】下载地址。
使用下面的命令下载Anaconda到你的服务器,地址应粘贴你复制的内容。
wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
文件包比较大,稍等几分钟。
下载完成之后,执行下面的命令进行安装。
bash Anaconda3-2020.11-Linux-x86_64.sh
所有安装提示都确认,输入yes或回车,直到结束。
安装成功之后执行下面的命令刷新。
source ~/.bashrc
然后使用下面的命令检查是否已经成功,正常应该出现版本号数字。
conda --version
配置config.py
执行下面的命令,生成Notebook的配置文件。
jupyter notebook --generate-config
使用SFTP软件工具登录到你的服务器,MacOS用transmit,Win10用WinSCP。
在SFTP软件中直接右键打开/root/.jupyter/jupyter_notebook_config.py
文件,打开后找到并进行修改如下。
你的外网域名网址,没有的话直接用IP地址:
c.NotebookApp.allow_origin = 'http://www.10knet.com/'
允许使用root权限:
c.NotebookApp.allow_root = True
默认打开的文件目录,以后所有文章代码都放这里,非中文任意目录:
c.NotebookApp.notebook_dir = '/notebook/'
启动时候不要打开浏览器(服务器上没有浏览器):
c.NotebookApp.open_browser = False
远程打开网页时候使用的默认端口(默认8888):
c.NotebookApp.port = 8885
启动Notebook
需要在阿里云官网的控制台中找到ECS服务器实例,然后【配置安全组规则】,添加上面设置的8885端口。
你可以复制一个现有的规则进行修改,结果如下图。
使用下面的命令启动Notebook程序。
jupyter notebook
应该会输出一个很长的地址,其中有token=...
字段,注意等号后的长串,这是令牌。
在浏览器中打开你上面设置的网址加端口,例如http://www.10knet.com:8885
,会提示你用令牌token来设置新密码。
如果密码设置失败,也可以在命令行中用
jupyter notebook password
进行设置。
设置密码成功后,就可以从浏览器进入Jupyter Notebook的文件管理页面,可以正常创建文件和编码了。
这时候如果你关闭命令行窗口,浏览器内的页面也将运行失败。
安装插件
我们需要为浏览器内的Notebook编码提供更多功能,比如代码自动完成、代码自动格式化等,所以要装插件。
在命令行窗口用Ctrl+C两次结束当前的Notebook程序,然后输入下面的命令运行。
conda install -c conda-forge jupyter_contrib_nbextensions
稍等几分钟,成功之后再次运行Notebook,这次我们使用后台模式,即使关闭命令窗口后浏览器内也可以照常使用。
nohup jupyter notebook &
运行之后在浏览器内刷新Notebook的文件浏览页面,会出现新的Nbextensions
菜单,如下所示。
点击计入,去掉顶部的disable configuration ...
勾选,然后增加勾选下面的工具。
Hinterland
自动替代码提示,输入Python代码时候自动弹出提示框。
Code prettify
自动代码格式化,编码页面会出现一个小锤子,点击格式化当前代码。
关闭Notebook
如果你需要重启Notebook,就必须先关闭当前在后台运行的Notebook。
先使用下面命令查看正在运行的程序。
jupyter notebook list
如果它返回了http...
,就说明有Notebook正在运行,然后使用下面命令查找它的运行ID。
netstat -tulpn
运行结果类似下图:
从列出的程序中找到端口为8885
程序对应的数字,如上图的2221,然后使用下面的命令终止它。
kill 2221
自动开机启动
使用SFTP软件登录到阿里云服务器,找到/etc/rc.d/rc.local
文件并打开,添加下面内容:
# 启动jupyternotebook
sleep 30s
nohup jupyter notebook &
这是特别延迟30秒之后再启动Notebook,如果你的服务器没有安装其他功能,那么可以把它设置更少。
PS:这个安装方法只支持单个账号个人使用,如果需要多人共同使用的话需要安装JupyterHub(百人以上团队)或者The Littlest JupyterHub(百人以内团队),都需要更加强劲的服务器配置。
END