折腾一上午,走了弯路,故总结一下。
----------------------------------------------以下是有问题的--------------最下面有正确方式------------------------------------------
jupyter有terminal,这个terminal其实就是linux环境,所以按照linux下python2.7升级python3操作就行。但愚蠢的我,找的参考文档(更换Jupyter Notebook 内核Python版本)里没有告诉我如何设置默认python执行版本,刚刚找到一篇旧博客(Linux 升级 Python 至 3.x)讲到了如何设置默认python版本,感谢。以下是同时保留了两个版本,并把默认版本设置为了3。
大概步骤简记如下:
(1)下载python3(因为我是在公司内网升级,所以是下载到本地,再上传服务器的):
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
(2)解压缩:
tar -zxvf Python-3.7.0.tgz
(3)检查编译器执行环境(一般不需要检查,jupyter的环境肯定是有的):
# cd Python-3.7.0
# sudo ./configure
(4)安装:
# sudo make
# sudo make install
(5)验证,python -V出来的就是默认版本:
# python -V
# python3 -V
(6)更换python3作为默认版本,首先通过如下命令可以看到jupyter执行的python依赖:
将原来 python 的软链接重命名:
mv /usr/bin/python /usr/bin/python.bak
将 python 链接至 python3:
ln -s /usr/local/bin/python3 /usr/bin/python
这时,再执行python -V查看 Python 的版本就是3了:Python 3.7.4
不过这样设置后在terminal执行python是使用的python3,但jupyter页面显示的new下面还是python2。这个的设置应该是在kernel.json里面,可以在根目录查看一下这个文件的位置:
$sudo find . -name kernel.json
./usr/share/jupyter/kernels/python2/kernel.json
修改kernel.json:
{
"display_name": "Python 3",
"language": "python",
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
]
}
最后结果因为缺少No module named '_ctypes,所以失败了。。。。
最开始缺少_ctypes,用下面的方式解决了:
- bzip2-devel(解决 import bz2 报错)
- ncurses-devel(解决 import curses 报错)
- sqlite-devel(解决 import sqlite3 报错)
- gdbm-devel(解决 _dbm _gdbm 缺失)
- xz-devel(解决 _lzma 缺失)
- tk-devel(解决 _tkinter 缺失)
- readline-devel(解决 readline 缺失)
- libffi-devel(解决 _ctypes 缺失)
yum -y install bzip2-devel ncurses-devel sqlite-devel gdbm-devel xz-devel tk-devel readline-devel libffi-devel
然后又报缺失_ssl,网上找到两种解决办法,第一种:
./configure --with-ssl
make
sudo make install
这种方式对我的环境来说不好使,第二种:
yum -y install openssl-devel
make
make install
最后发现这种下载包的方式就有问题,不适合jupyter。
-------------------------------------------以下是正解------------------------------------
还是在python2.7的jupyter /usr/bin 目录下执行如下命令来安装python3.6:
sudo yum install python36 python36-pip
sudo pip3 install jupyter
安装后是这样:
如果执行第一条语句遇到下面的错误:
那就把/etc/yum.repos.d/aliyun.repo删除或者重命名就可以解决。
原则上执行完上面两条语句,然后重启jupyter就可以使用了,但我又遇到重启不起来的问题,可能是缺少ssl?(我也不确定)执行了下面这条语句,就重启起来了:
sudo yum -y install openssl
最后的效果是: