CentOS 7.9 安装 Python 3.10 详细步骤及常见错误解决方案

 更新时间:2025年06月25日 09:53:07   作者:沉默的八哥  
CentOS7.9安装Python3.10需升级OpenSSL至1.1.1,配置编译参数并使用altinstall避免覆盖Python2.7,设置环境变量修复yum冲突,处理依赖缺失及模块编译错误,优化pip源以提升兼容性,本文给大家介绍CentOS 7.9 安装 Python 3.10 详细步骤及常见错误,感兴趣的朋友一起看看吧

一、环境准备与依赖安装

1.更新系统与开发工具

sudo yum update -y
sudo yum groupinstall "Development Tools" -y
sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel \
readline-devel tk-devel libffi-devel gdbm-devel db4-devel libpcap-devel xz-devel expat-devel

作用:安装编译 Python 所需的依赖库。若缺少依赖可能导致 _ctypes_ssl 等模块编译失败

2.检查 OpenSSL 版本

openssl version

若版本低于 1.1.1,需手动升级(Python 3.10 要求 OpenSSL ≥1.1.1):

wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
tar -zxvf openssl-1.1.1k.tar.gz && cd openssl-1.1.1k
./config --prefix=/usr/local/openssl shared zlib
make && sudo make install
# 配置系统使用新版本
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig -v
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

注意:升级后需验证 openssl version 是否显示新版本。

二、编译安装 Python 3.10

下载源码并解压

wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
tar -zxvf Python-3.10.12.tgz && cd Python-3.10.12

配置编译参数

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

关键参数说明

  • --with-openssl:指定自定义 OpenSSL 路径(避免 SSL module 缺失)。

  • --enable-optimizations:优化编译性能,若编译失败可去掉此参数。

编译与安装

make -j $(nproc) && sudo make altinstall

使用 altinstall 而非 install:避免覆盖系统默认 Python 2.7。

验证安装

/usr/local/python3.10/bin/python3.10 --version  # 应输出 Python 3.10.x
/usr/local/python3.10/bin/python3.10 -c "import ssl; print(ssl.OPENSSL_VERSION)"  # 验证 SSL 模块

三、环境配置

设置全局软链接

sudo ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python3
sudo ln -s /usr/local/python3.10/bin/pip3.10 /usr/bin/pip3

配置环境变量

echo 'export PATH=$PATH:/usr/local/python3.10/bin' >> /etc/profile
source /etc/profile

修复 yum 工具冲突 修改 /usr/bin/yum/usr/libexec/urlgrabber-ext-down 文件,将 #!/usr/bin/python 改为 #!/usr/bin/python2,以解决因 Python 3 导致 yum 失效的问题。

四、常见错误及解决方法

zipimport.ZipImportError: can't decompress data; zlib not available 原因:缺少 zlib-devel 库。 解决:

sudo yum install -y zlib-devel
# 重新编译 Python

ModuleNotFoundError: No module named '_ctypes' 原因:未安装 libffi-devel。 解决:

sudo yum install -y libffi-devel
# 重新编译 Python

SSL module is not availablepip 证书验证失败 原因:Python 未正确链接 OpenSSL。 解决:

确认编译时指定 --with-openssl 路径。

  • 若仍报错,手动修改 Modules/Setup 文件,添加以下内容后重新编译:
SSL=/usr/local/openssl
_ssl _ssl.c -DUSE_SSL -I$(SSL)/include -L$(SSL)/lib -lssl -lcrypto

动态库缺失(如 libssl.so.1.1) 解决:

ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
ldconfig -v

make altinstall 后无 pip3 原因:altinstall 不会自动创建 pip 软链接。 解决:手动创建软链接或通过 python3 -m ensurepip 安装。

五、优化配置

配置国内 pip 源

mkdir -p ~/.pip && cat > ~/.pip/pip.conf << EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
EOF

更新 pip 与 setuptools

pip3 install --upgrade pip setuptools

总结:CentOS 7.9 安装 Python 3.10 的核心在于 OpenSSL 升级和依赖完整性检查。若遇到编译错误,优先检查依赖库是否齐全,并通过环境变量和编译参数确保 Python 正确链接所需组件。

到此这篇关于CentOS 7.9 安装 Python 3.10 详细步骤及常见问题解决的文章就介绍到这了,更多相关CentOS 7.9 安装 Python 3.10 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python xml解析实例详解

    python xml解析实例详解

    这篇文章主要介绍了python xml解析实例详解的相关资料,这里举例说明如何实现,需要的朋友可以参考下
    2016-11-11
  • python实现腾讯滑块验证码识别

    python实现腾讯滑块验证码识别

    这篇文章主要介绍了python如何实现腾讯滑块验证码识别,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • Pytorch创建随机值张量的过程详解

    Pytorch创建随机值张量的过程详解

    这篇文章主要介绍了Pytorch创建随机值张量的过程详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • OpenCV图像噪点消除五大滤波方法

    OpenCV图像噪点消除五大滤波方法

    本文主要介绍了OpenCV五种经典图像去噪方法(均值、方框、高斯、中值、双边),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-06-06
  • Ubuntu下创建虚拟独立的Python环境全过程

    Ubuntu下创建虚拟独立的Python环境全过程

    virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。本篇文章讲述如何在Linux以及Ubuntu中创建Python虚拟环境,以及Virtualenvwrapper的安装使用,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • Python中列表乘法和列表推导式的区别举例详解

    Python中列表乘法和列表推导式的区别举例详解

    在Python中列表是一种非常灵活和强大的数据结构,支持多种运算和操作,这篇文章主要介绍了Python中列表乘法和列表推导式区别的相关资料,文中通过代码就介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • 使用Python绘制带填充纹理的堆叠图

    使用Python绘制带填充纹理的堆叠图

    在数据分析和可视化中,堆叠条形图是一种非常有用的工具,能够直观地展示不同类别在各个样本中的分布情况,下面我们来看看具体实现方法吧
    2025-07-07
  • Python实现Excel表内关键字查修改删

    Python实现Excel表内关键字查修改删

    在日常办公和数据处理中,Excel作为最常用的表格工具,承载着海量业务数据,但对于有些场景也会力不从心,本文将使用Python开发一个Excel表内关键字查修改删工具,需要的可以参考下
    2025-04-04
  • python实现简单飞机大战小游戏

    python实现简单飞机大战小游戏

    这篇文章主要为大家详细介绍了python实现简单飞机大战小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Python爬虫基础之selenium库的用法总结

    Python爬虫基础之selenium库的用法总结

    今天带大家来学习selenium库的使用方法及相关知识总结,文中非常详细的介绍了selenium库,对正在学习python的小伙伴很有帮助,需要的朋友可以参考下
    2021-05-05

最新评论