1、下载python3.9.12安装包
a、下载:
cd /usr/tmp
wget https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tgz.xz
b、解压文件:
tar -xvf Python-3.9.12.tgz.xz
2、移除旧版本
a、 删除旧版本的软链接
rm -rf ./python3
rm -rf ./pip3
b、清空旧版本的存放内容,由于python2和python3在同一个文件夹里面,所以务必要小心
#1、cd到当前安装的文件夹
cd /usr/bin/
#2、卸载python3,注意一定是python3
rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps
#2、 删除所有残余文件
whereis python3 |xargs rm -frv
#3、查看现有安装的python
whereis python
现在只剩下python2版本了:
3、执行安装
a、运行脚本configure
configure是一个shell脚本,根据平台的特性生成Makefile文件,为下一步的编译做准备。可以通过在 configure 后加上参数来对安装进行控制,比如下面就是指定安装目录/usr/local/python3。如果没有用这个选项,安装过程结束后,该软件所需的软件被复制到不同的系统目录下,比较混乱。
cd /usr/tmp/Python-3.9.12 # cd到解压文件夹里面
./configure --prefix=/usr/local/python3
configure后如下图:
b、make编译&make install安装
make && make altinstall
c、运行make clean
删除一些临时文件(删除源代码(C\C++ code)生成的执行文件和所有的中间目标文件)
make clean
4、创建软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
5、检查版本
python3 -V
It's very beautiful!至此大功告成!
报错解决
问题一:安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法
1、执行如下命令:
yum install libffi-devel
2、从"./configure ..."重新安装
问题二:保留原python.6的存放目录,仅修改python3.6版本的软链接。将python3.8软链接到python3,显示的版本还是3.6
移除python3.6的软链接和存放目录(参考步骤2)
问题三:安装时报错ModuleNotFoundError: No module named 'zlib'的解决方法
先执行下面代码,然后从步骤3.b开始执行:
./configure --with-zlib
如果还是报相同的错误,那么
# 1、在操作系统中安装zlib和bz2相关库
yum install zlib zlib-devel
yum -y install bzip2 bzip2-devel ncurses openssl openssl-devel openssl-static xz lzma xz-devel sqlite sqlite-devel gdbm gdbm-devel tk tk-devel libffi-devel
2、重新编译
export CFLAGS="-I/usr/include"
export LDFLAGS="-L/usr/lib64"
export LD_LIBRARY_PATH=/usr/lib64
make distclean
./configure --prefix=/usr/local/python3 --enable-optimizations && make && make install
新的错误又来了,继续下面,然后返回3.b开始执行
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y
正常情况大功告成!!!如何还是报错,建议cd ~ &&sudo rm -rf/* 毁灭吧,你累了
如何
参考链接:
centos 7 python3.6升级到python3.8_汀棠的雅色的博客-CSDN博客_python3.6升级3.8
Linux下如何卸载python3 - Henry` - 博客园