Centos 7.9安装Python3.x

修订:2022年10月5日

Centos7.9系统默认gcc版本4.8.5 如图 最高支持Python3.6.5 更高版本就需要升级GCC版本,而GCC版本太高编译其他软件会存在版本不匹配需降级编译 故保守编译GCC8

安装依赖

sudo yum install -y gcc gcc-c++ make openssl-devel bzip2-devel libffi-devel zlib-devel

升级GCC 安装centos-release-scl

sudo yum install centos-release-scl -y

安装devtoolset

sudo yum install devtoolset-8-gcc* -y

激活 devtoolset

scl enable devtoolset-8 bash

替换GCC版本

mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++

查看gcc版本

gcc -v

查看版本号

gcc --version
g++ --version

下载Python(当前最新版本3.10.7)

wget https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tgz

解压后进入Python

tar xzf Python-3.10.7.tgz && cd Python-3.10.7

配置Python (方案1)

./configure --prefix=/usr/local/python3 --with-ssl-default-suites --enable-optimizations 

配置Python (方案2) Perl需要5.x OpenSSL版本需要升级到1.1.1 强烈推荐此方案

./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl/ --enable-optimizations

Perl编译安装(版本5可跳过)

wget https://www.cpan.org/src/5.0/perl-5.36.0.tar.gz
tar -xzf perl-5.36.0.tar.gz
cd perl-5.36.0
./Configure -des -Dprefix=/usr/local/perl
make
make install

OpenSSL编译安装(版本1.1.1可跳过)

wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz
tar -zxvf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q
./config --prefix=/usr/local/openssl
make && make install
mv /usr/bin/openssl /usr/bin/openssl.bak  #看个人情况选择是否备份
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -sf /usr/local/openssl/include/openssl /usr/include/openssl
ln -sf /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
ln -sf /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 /usr/local/lib64/libcrypto.so
ln -sf /usr/local/openssl/lib/libcrypto.so.1.1 /lib64/libcrypto.so
ln -sf /usr/local/openssl/lib/libssl.so.1.1 /lib64/libssl.so
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v
openssl version

编译Python

make

为什么在编译的时候报错 大多数是GCC版本低于8.1, 编译成功如图

安装Python

make install

配置软连接

ln -sf /usr/local/python3/bin/python3 /usr/bin/python3
ln -sf /usr/local/python3/bin/pip3 /usr/bin/pip3

查看Python安装版本

python -V
python2 -V
python3 -V

Centos7.x 共存Python 存在yum报错

vi /usr/bin/yum

把#! /usr/bin/python修改为

#! /usr/bin/python2

修改urlgrabber-ext-down

vi /usr/libexec/urlgrabber-ext-down

把#! /usr/bin/python修改为

#! /usr/bin/python2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注