Jupyter升级python2.7到python3

折腾一上午,走了弯路,故总结一下。

----------------------------------------------以下是有问题的--------------最下面有正确方式------------------------------------------

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依赖:

Jupyter升级python2.7到python3_第1张图片

将原来 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

安装后是这样:

Jupyter升级python2.7到python3_第2张图片

如果执行第一条语句遇到下面的错误:

Jupyter升级python2.7到python3_第3张图片

那就把/etc/yum.repos.d/aliyun.repo删除或者重命名就可以解决。

原则上执行完上面两条语句,然后重启jupyter就可以使用了,但我又遇到重启不起来的问题,可能是缺少ssl?(我也不确定)执行了下面这条语句,就重启起来了:

sudo yum -y install openssl

最后的效果是:

Jupyter升级python2.7到python3_第4张图片

你可能感兴趣的:(python)