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 availablepip 证书验证失败 原因 :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 正确链接所需组件。

相关推荐
程序员龙叔3 小时前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
用户8356290780516 小时前
使用 Python 操作 Word 内容控件
后端·python
摇滚侠6 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush46 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5207 小时前
Linux 11 动态监控指令top
linux
码云骑士8 小时前
32-慢查询排查全流程(下)-索引优化实战与最左前缀原则
python
不会C语言的男孩8 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈8 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
闵孚龙8 小时前
《PyTorch 深度修炼》Dataset 和 DataLoader:数据如何喂给模型
人工智能·pytorch·python