在服务器端升级python并安装Jupyter
最近突发奇想,想在腾讯云上安装Jupyter,看了看过程还是比较麻烦的,因为服务器用的centos版本比较老,现在Jupyter支持的python版本都比较新,所以首先要做的就是升级python。
升级python
首先要在服务器上准备编译环境,大概也就是gcc之类的,然后服务器上下载python源码:
1 |
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz |
下载完成之后就可以对论文进行解压。
1 |
tar -vxf Python-3.6.1.tgz |
在解压完成之后先不要着急进入目录进行编译,因为我在解压后就直接进行编译安装,结果后来出现了错误,又重新返工,得不偿失。
先安装如下内容,否则python一些包无法使用。
1 |
yum install zlib-devel openssl-devel sqlite-devel |
还需要修改一个文件:
1 |
vi ./Modules/Setup |
找到#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
这一行,去掉前面的注释,保存退出。
之后执行:
1 |
./configure --prefix=/opt/python3.6.1 |
程序检查完成后,就可以编译安装了。
1 |
make && make install |
安装完之后python
命令还是不可用的,需要将原先的软连接替换掉。
1 |
mv /usr/bin/python /usr/bin/python2 |
执行完之后,输入python
应该就可以正常使用了。但是现在yum
命令应该失效了。
1 |
vi /usr/bin/yum |
需要修改头部的#!/usr/bin/python
为:#!/usr/bin/python2
就可以使用yum
命令了。
现在就需要对pip
和easy_install
的软连接进行修改,如果没有安装pip命令的,可以使用下面的命令进行安装:
1 |
wget https://bootstrap.pypa.io/get-pip.py |
安装完成之后可以使用whereis pip
查找pip的安装位置。
之后进行pip软连接的替换。
1 |
ln -s /opt/python3.6.1/bin/pip3 /usr/bin/pip |
easy_install也是相同的原理。
安装anaconda
anaconda里面集成了很多关于python科学计算的第三方库,主要是安装方便,现在Jupyter官方文档中写明推荐使用anaconda进行Jupyter的安装。
首先在anaconda的下载页面
下载anaconda的安装脚本。这个文件有点大,下载起来需要较长的时间。在选择下载文件的时候注意区分操作系统的位数。
下载完成之后执行bash Anaconda3-4.3.1-Linux-x86_64.sh
就可以自动进行安装了。
在服务器端安装Jupyter
在这一部分我主要是参考的Jupyter的官方参考文档。
首先在装完anaconda应该会自动安装了Jupyter,可以使用jupyter notebook
看看Jupyter能不能正常运行,如果不能运行的话可以使用conda install jupyter
进行安装,确保Jupyter能够正常运行后可以进行下面的步骤。
生成Jupyter的配置文件
在启动Jupyter的时候需要配置文件启动,所以首先要生成配置文件。使用命令jupyter notebook --generate-config
自动生成配置文件,配置文件的目录应该是~/.jupyter
。
自动生成密码
因为是放在服务器上运行,所以不能被任意的人登录,所以需要配置密码。
1 |
from notebook.auth import passwd |
使用上面的函数可以自动生成密码,需要将生成的密码序列复制下来,进入到配置文件中修改。
1 |
c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed' |
生成ssl证书
因为Jupyter必须要用https进行登录,所以需要生成ssl证书。
1 |
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem |
上面的命令可以自动生成证书,但是这个证书是不安全的,只能在测试过程中使用。
更改Jupyter的配置文件中的相关字段。
1 |
c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem' |
其他设置
1 |
c.NotebookApp.ip = '*' |
设置运行的端口号还有ip地址。
安装Jupyter插件管理器
Jupyter中邮许多插件,有个插件管理器可以统一管理这些插件jupyter_contrib_nbextensions。
安装也非常简单,使用命令conda install -c conda-forge jupyter_contrib_nbextensions
就可以自动安装了,安装完成之后重启Jupyter就可以在浏览器中看到效果。
安装jupyterlab
目前这个项目还在测试过程中,它的目的是增强jupyter的编辑能力,使jupyter如IDE一般强大。
安装:conda install -c conda-forge jupyterlab
运行:jupyter lab
持久化运行
在网上看到很多教程是把Jupyter加入到Nginx服务器程序里面转发的,但是有点复杂,所以打算以后再弄,现在用个临时的持久化运行的方法来跑:
1 |
nohup jupyter notebook & |
Jupyter安装成功
Jupyter插件管理器页面
一些常用的命令和内核网址
将命令行中运行的python改为2.7版本
1 |
source activate py27 |
MATLAB内核:https://github.com/calysto/matlab_kernel
Bash内核:https://github.com/takluyver/bash_kernel
查找jupyter进程
1 |
ps -ef|grep jupyter |
杀死进程
1 |
kill -9 +进程号 |
本文作者:Qiu Qingyu
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 CN许可协议。转载请注明出处!
本文永久链接:http://qiuqingyu.cn/2017/05/15/在服务器端升级python并安装Jupyter/