CentOS 部署Jupyter 同时支持Python2和Python3

1、升级Python,保留旧版本
2、不要随便卸载 python很多命令依赖它
3、官网下载Python3安装包,源码编译安装!

CentOS使用Python3源码安装

# 下载
wget http://python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
# 解压
tar xf Python-3.6.5.tar.xz
# 进入`Python-3.6.5`,编译安装
mkdir /usr/local/python3
# --prefix`设置python3安装的位置
./configure --prefix=/usr/local/python3
make & make install


# 替换系统默认python版本
mv /usr/bin/python  /usr/bin/python_old
# 备份低版本
# 必须的,否则报错`ln: failed to create symbolic link ‘/usr/bin/python’: File exists`
# 软链接新版本
ln -s /usr/local/python3/bin/python3  /usr/bin/python
重新编译安装python3,循环下面2个步骤
  • ./configure --prefix=/usr/local/python3
  • make & make install

升级python后修改默认python,yum不能使用

  • yum 基于 python
    • 报错:except KeyboardInterrupt, e: yntaxError: invalid syntax
  • 编辑下yum配置文件:vi /usr/bin/yum
    • #!/usr/bin/python 改成 #!/usr/bin/python2 保存退出即可


检验版本
python -V
whereis python 
pip --version 
更新PIP:pip install --upgrade pip

Jupyter部署到Linux系统

  • 可能要升级ipython但要先卸载
    • sudo -H pip install --ignore-installed -U ipython
    • upgrade ipython without uninstall the old version
python3 -m pip install ipykernel
python3 -m ipykernel install --user
jupyter kernelspec list


1. 登陆远程服务器
2. 生成配置文件
$jupyter notebook --generate-config
3. 生成密码
打开ipython,创建一个密文的密码:
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274'

把生成的密文‘sha:ce…’复制下来

4. 修改默认配置文件
$vim ~/.jupyter/jupyter_notebook_config.py 
进行如下修改:

c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #随便指定一个端口

5. 启动jupyter notebook:
$jupyter notebook

6. 远程访问
此时应该可以直接从本地浏览器直接访问http://address_of_remote:8888就可以看到jupyter的登陆界面。

7. 建立ssh通道
如果登陆失败,则有可能是服务器防火墙设置的问题,此时最简单的方法是在本地建立一个ssh通道: 
在本地终端中输入ssh username@address_of_remote -L127.0.0.1:1234:127.0.0.1:8888 
便可以在localhost:1234直接访问远程的jupyter了。
  • root 用户使用 jupyter notebook --allow-root
#c.NotebookApp.allow_root = False
去掉#,并修改成True即可解决root权限运行的问题
c.NotebookApp.allow_root =True
保存,重新运行程序
jupyter notebook


让jupyter notebook同时支持python2和python3

用python3安装pip3

# 下载python-pip的tar包
wget https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz --no-check-certificate

由于下载pip是基于https协议的,故需要在wget url后面加上--no-check-certificate,否则不能下载!

安装pip:

tar xzvf pip-1.3.1.tar.gz 
cd pip-1.3.1 
python setup.py install
ln -s /usr/local/python3/bin/pip /usr/bin/pip3

zipimport.ZipImportError: can't decompress data

# 安装依赖zlib、zlib-devel
yum -y install zlib*
(报错,继续修改为python2)
  
# 重新编译安装python源文件,安装zlib库
vim module/setup
# 取消注释#zlib zlibmodule.c -l$(prefix)/include-L$(exec_prefix)/lib-lz
make && make install 


参考资料

  • CentOS 7 安装 Python3、pip3
  • 远程访问jupyter notebook
  • How do I add python3 kernel to jupyter (IPython)
  • zipimport.ZipImportError: can't decompress data; zlib not available 解决办法
  • python安装好后,提示找不到ssl模块
  • centos6.8 安装python3/pip3/sqlite3步骤详解

你可能感兴趣的:(CentOS 部署Jupyter 同时支持Python2和Python3)