1.准备工作
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
# 安装libffi-devel依赖
yum install libffi-devel -y
# 如果不安装这个包,python3可以装成功
# 但是后面装flask、uwsgi等依赖python3中有个内置模块叫ctypes时会报错。
# 报错ModuleNotFoundError: No module named ‘_ctypes‘。需要安装依赖包和重新编译安装python3
yum install openssl-devel
2.下载Python3.8.12
建议使用wget下载,快的一批。官网下的话太慢了。
yum install wget -y
# 下载稳定版本3.8版
wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
3.config、make、make install
cd Python-3.8.12/
./configure prefix=/usr/local/python3
make && make install
4.成功的标志
5.可能出现的错误或异常
一、错误信息:
SystemError: <built-in function compile> returned NULL without setting an error
generate-posix-vars failed
解决办法
依次执行:
cd Python-3.8.12/
make clean
./configure prefix=/usr/local/python3
make && make install
二、错误信息:
make: *** 没有规则可以创建目标“instal”。 停止。
Misc/python-config.sh >python-config
解决办法
依次执行:
cd Python-3.8.12/
make clean
./configure prefix=/usr/local/python3
make && make install
6.软连接
mv /bin/python /bin/python.bak
ln -s /usr/local/python3/bin/python3 /bin/python
# 查看python版本
python -V
> Python 3.8.12
[root@localhost bin]# cd ~
[root@localhost ~]# ln -s /usr/local/python3/bin/pip3 /bin/pip
ln: 无法创建符号链接"/bin/pip": 文件已存在
[root@localhost ~]# rm /bin/pip
rm:是否删除符号链接 "/bin/pip"?yes
[root@localhost ~]# ln -s /usr/local/python3/bin/pip3 /bin/pip
pip -V
> pip 21.1.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
7.yum错误
由于yum默认使用Python2.7.5,不可使用py3+,但系统已将python指向python3.8.12,故需要将yum中修改指向。错误信息如下:
一、修改:
二、修改:
结束~