一、说明:
CentOS7中自带的python版本是python-2.7.5,由于新开的虚拟机需要使用python3,而使用python编程中涉及到的一些模块,不如pymysql必须要python3以上版本才可以正常运行,于是便升级一下版本。
二、安装Python3.7.3
这里选择下载python 3.7.3。
# 下载
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
# 解压
tar -zxf Python-3.7.3.tgz
# 安装依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc libffi-devel
# 进入python目录
cd Python-3.7.3
# 编译
./configure --prefix=/usr/local/python3.7 --with-ssl
#安装
make && make install
关于Python3.7以上的版本,需要多安装一个依赖包:
yum install -y libffi-devel
否则会出现ModuleNotFoundError: No module named '_ctypes'的报错。
在make install后执行echo $?,为0表示没有出错。如果没有报错,在/usr/local会生成python3.7目录。
三、安装后进行配置
1. 系统配置
然后将系统默认的python2备份
mv /usr/bin/python /usr/bin/python.bak
创建新的软连接
ln -s /usr/local/python/bin/python3.7 /usr/bin/python
查看版本
[root@moli-linux03 src]# python -V
Python 3.7.3
升级完成了。
2. 更改yum配置
因为yum需要使用python2,将/usr/bin/python改为python3后,yum就不能正常运行了,因此需要更改一下yum的配置。
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
编辑这两个文件,将文件头的#!/usr/bin/python改为#!/usr/bin/python2即可。
四、报错处理
若报错如下:
[root@ecs-e84a imagezqj]# pip --version
Traceback (most recent call last):
File "/usr/bin/pip", line 7, in
from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip._internal.cli.main'
1. 备份/usr/bin/pip
mv /usr/bin/pip /usr/bin/pip.bak
2. 创建新的pip3软连接到/usr/bin/pip
[root@ecs-e84a imagezqj]# ll /usr/bin/pip
lrwxrwxrwx 1 root root 29 Mar 15 21:43 /usr/bin/pip -> /usr/local/python3.7/bin/pip3
3.再次查看pip –version,已恢复正常。
[root@ecs-e84a bin]# pip --version
pip 19.0.3 from /usr/local/python3.7/lib/python3.7/site-packages/pip (python 3.7)