提前准备
提前准备好python包的安装文件,放进对应的虚拟机中
阿里云存有 Python-3.9.6.tar.xz
pythonftp下载
开始安装
1、先查看系统python的位置在哪儿
whereis python
2、下载python3的包之前,要先安装相关的依赖包,用于下载编译python3:
yum install libffi-devel -y
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
(没有提前安装上述内容可能会导致报错ModuleNotFoundError: No module named '_ctypes‘)
原因:Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用CentOS7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。
由于在CentOS7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError: No module named ‘_ctypes’"的错误。
参考:ModuleNotFoundError: No module named ‘_ctypes‘报错解决方案
3、默认的centos7是没有安装pip,先添加epel扩展源
yum -y install epel-release
yum install python-pip
4、进入到python包的文件夹内,编译python3源码包,解压
xz -d Python-3.9.6.tar.xz
tar -xf Python-3.9.6.tar
cd Python-3.9.6
./configure prefix=/usr/local/python3 # 安装的位置
make && make install
5、安装依赖zlib、zlib-deve
yum install zlib zlib
yum install zlib zlib-devel
最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录
6、添加软链接,将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak
7、添加python3和pip3的软链接
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3
测试是否安装成功了
python3 -V
8、更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用
vi /usr/bin/yum
把第一行的#! /usr/bin/python 修改为如下
#! /usr/bin/python2
还有一个地方也需要修改
vi /usr/libexec/urlgrabber-ext-down
把第一行的#! /usr/bin/python 修改如下
#! /usr/bin/python2
启动python2
python2
启动python3
python3