CentOS 7.9编译安装Python-3.10.13
查看CentOS版本、系统默认gcc版本、Python版本和pip版本
cat /etc/redhat-release
gcc --version
python -V
pip -V
查看 OpenSSL 版本
!!! pip3 需要 openssl 版本 > 1.1.1
Could not build the ssl module!
Python requires a OpenSSL 1.1.1 or newer
- 查看 openssl 版本
openssl version
# OpenSSL 1.0.2k-fips 26 Jan 2017
- 安装 openssl
- 下载 openssl 编辑安装
# 下载
wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1d.tar.gz
# 解压
tar -zxvf OpenSSL_1_1_1d.tar.gz
- 编译安装
# 进入目录
cd openssl-OpenSSL_1_1_1d
# 指定安装路径并编译
./config --prefix=/usr/local/openssl // 指定安装路径
make && make install
- 替换当前系统的旧版本 openssl 「先保存原来的」
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/lib64/openssl /usr/lib64/openssl.old
mv /usr/lib64/libssl.so /usr/lib64/libssl.so.old
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v // 建立动态链接
- 最后查看当前系统 openssl 版本
penssl version
# OpenSSL 1.1.1d 10 Sep 2019
部署Python-3.10.13
- 下载Python-3.10.13.tar.xz,Python官网:https://www.python.org/
- 安装编译依赖软件包及包组
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 man
- 编译安装Python-3.10.13
tar -xf Python-3.10.13.tar.xz -C /usr/src
cd /usr/src/Python-3.10.13
./configure --prefix=/usr/local/python-3.10.13 --enable-shared --enable-profiling --disable-ipv6 --with-pymalloc --with-openssl=/usr/local/openssl --with-doc-strings --enable-loadable-sqlite-extensions | tee /tmp/python-3.10.13.out
less /tmp/python-3.10.13.out
make -j 8
make install
- 更改CentOS 7.9默认Python版本为3.10.13
which python
mv /usr/bin/python /usr/bin/python-2.7.5
ln -s /usr/local/python-3.10.13/bin/python3 /usr/bin/python
ln -s /usr/local/python-3.10.13/bin/pip3 /usr/bin/pip
- 添加至PATH环境变量
# vim /etc/profile.d/python-3.10.13.sh
export PATH=/usr/local/python-3.10.13/bin:$PATH
. /etc/profile.d/python-3.10.13.sh
echo $PATH
- 配置头文件
ln -s /usr/local/python-3.10.13/include /usr/include/python-3.10.13
- 配置库文件
echo "/usr/local/python-3.10.13/lib" > /etc/ld.so.conf.d/python-3.10.13.conf
cat /etc/ld.so.conf.d/python-3.10.13.conf
ldconfig
- 查看部署后的Python和pip版本
python -V
python3 -V
pip -V
测试
vim /tmp/test.py
#!/usr/bin/python
import os
# 获取操作系统类型
os_type = os.uname().sysname
print("操作系统类型:",os_type)
# 获取操作系统版本
os_version = os.uname().release
print("操作系统版本:",os_version)
# 获取主机名
hostname = os.uname().nodename
print("主机名:",hostname)
# 获取CPU信息
cpu_info = os.popen('cat /proc/cpuinfo | grep "model name"').read().strip()
print("CPU信息:")
print(cpu_info)
# 获取内存信息
mem_info = os.popen('cat /proc/meminfo | grep "MemTotal"').read().strip()
print("内存信息:")
print(mem_info)
# 获取磁盘使用情况
disk_usage = os.popen('df -h').read().strip()
print("磁盘使用情况:")
print(disk_usage)
# 获取/tmp目录下的文件信息
print("/tmp目录下的文件信息:")
os.system('ls -lh /tmp')
python /tmp/test.py
将yum中的Python版本修改为系统原来的2.7.5版本
!!! 升级Python后会导致yum无法使用
# 将第一行的“#!/usr/bin/python”修改为“#!/usr/bin/python-2.7.5”
vim /usr/bin/yum
# 将第一行的“#! /usr/bin/python”修改为“#! /usr/bin/python-2.7.5”
vim /usr/libexec/urlgrabber-ext-down