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
  1. 下载源码并解压

    复制代码
    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
  2. 配置编译参数

    复制代码
    ./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:优化编译性能,若编译失败可去掉此参数。

  3. 编译与安装

    复制代码
    make -j $(nproc) && sudo make altinstall

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

  4. 验证安装

    复制代码
    /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 模块

三、环境配置
  1. 设置全局软链接

    复制代码
    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
  2. 配置环境变量

    复制代码
    echo 'export PATH=$PATH:/usr/local/python3.10/bin' >> /etc/profile
    source /etc/profile
  3. 修复 yum 工具冲突 修改 /usr/bin/yum 和 /usr/libexec/urlgrabber-ext-down 文件,将 #!/usr/bin/python 改为 #!/usr/bin/python2,以解决因 Python 3 导致 yum 失效的问题。


四、常见错误及解决方法
  1. zipimport.ZipImportError: can't decompress data; zlib not available 原因 :缺少 zlib-devel 库。 解决:

    复制代码
    sudo yum install -y zlib-devel
    # 重新编译 Python
  2. ModuleNotFoundError: No module named '_ctypes' 原因 :未安装 libffi-devel。 解决:

    复制代码
    sudo yum install -y libffi-devel
    # 重新编译 Python
  3. SSL module is not available 或 pip 证书验证失败 原因 :Python 未正确链接 OpenSSL。 解决:

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

    • 若仍报错,手动修改 Modules/Setup 文件,添加以下内容后重新编译:

      复制代码
      SSL=/usr/local/openssl
      _ssl _ssl.c -DUSE_SSL -I$(SSL)/include -L$(SSL)/lib -lssl -lcrypto
      ​
  4. 动态库缺失(如 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
    ​
  5. make altinstall 后无 pip3 原因 :altinstall 不会自动创建 pip 软链接。 解决 :手动创建软链接或通过 python3 -m ensurepip 安装。


五、优化配置
  1. 配置国内 pip 源

    复制代码
    mkdir -p ~/.pip && cat > ~/.pip/pip.conf << EOF
    [global]
    index-url = https://mirrors.aliyun.com/pypi/simple/
    trusted-host = mirrors.aliyun.com
    EOF
  2. 更新 pip 与 setuptools

    复制代码
    pip3 install --upgrade pip setuptools

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

相关推荐
MoRanzhi12032 分钟前
第5篇(上)· 使用 PyQt5 实现 2048 算法求解版:五类搜索算法内核
python·启发式算法·强化学习·搜索算法·蒙特卡洛树搜索·2048游戏·expectimax
运维踩坑日记4 分钟前
【无标题】
linux·运维·windows
星川皆无恙6 分钟前
基于知识图谱的百科问答系统:Django + Neo4j 与实现
人工智能·python·机器学习·自然语言处理·django·知识图谱·neo4j
qq_448011167 分钟前
EXEC字典沙箱仅是名字空间隔离,模块和解释器仍共享带来的坑
python
打工仔折腾 AI12 分钟前
介入式脑机接口的跨尺度解码与闭环调控:从算法落地到后端工程实践
人工智能·后端·python·深度学习·算法·ai agent 实战
虚无的纽扣13 分钟前
【Linux】线程(下):怎么创建、终止与分离一个线程
linux·运维·服务器
叼烟扛炮15 分钟前
Linux 学习笔记(七):软件安装与 Vim 编辑器极速入门
linux·学习·编辑器
FITA阿泽要努力22 分钟前
/goal 命令:给 Agent 设定目标
服务器·人工智能·python·agent
金色熊族25 分钟前
在Qt中使用asan检测内存泄漏(二)--检查依赖库的内存使用
linux·qt·asan
叼烟扛炮26 分钟前
Linux 学习笔记(十六):进程的调度与优先级——谁先抢到 CPU?
linux·笔记·学习