由于服务器的操作系统比较老,自带的python只是2.7.5版本,一些python脚本只能在python3中运行,所以必须按照python3
注:在Linux中python2和python3是可以共存的
安装步骤
下载安装包
# 如果网速慢可以使用浏览器下载,然后上传至服务器
wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz
tar xvf Python-3.8.2.tgz
mv Python-3.8.2 /usr/local/src/python3
安装编译所需的依赖项
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc libffi-devel -y
编译
cd /usr/local/src/python3/
./configure && make && make install
查看python的安装路径,备份python2.7的可执行文件
whereis python
// centos原本python旧版版本为2.7.5
mv /usr/bin/python /usr/bin/python2.7.bak
修改yum配置文件
// 将两个文件中的 /usr/bin/python 改为 /usr/bin/python2.7
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
链接python3.8的可执行文件
ln -sf /usr/local/bin/python3.8 /usr/bin/python
ln -sf /usr/local/bin/pip3.8 /usr/bin/pip
升级pip版本
pip install --upgrade pip
验证
python -V
可能遇到的问题
OpenSSL 版本太低
1、查看新版本的OpenSSL是否已经被系统识别到
ldconfig -p | grep ssl
2、重新编译python
// 进入python源码解压目录
cd /usr/local/src/python3// 清理旧的编译文件
make clean// 指定 OpenSSL 的正确路径,并且使用 LDFLAGS 和 CPPFLAGS 显式指定库和头文件的位置
// 此处的/usr/local/openssl 是你安装的 OpenSSL 路径
./configure --with-openssl=/usr/local/openssl LDFLAGS="-L/usr/local/openssl/lib" CPPFLAGS="-I/usr/local/openssl/include"// 编译并安装
make
sudo make install
3、验证
// 进入python环境
import ssl
print(ssl.OPENSSL_VERSION)
参考链接
【1】CentOS 7 将 Python 2.7 版本升级到 3.8