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 正确链接所需组件。

相关推荐
DanCheng-studio10 小时前
网安毕业设计简单的方向答疑
python·毕业设计·毕设
轻抚酸~11 小时前
KNN(K近邻算法)-python实现
python·算法·近邻算法
独行soc12 小时前
2025年渗透测试面试题总结-264(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
t1987512812 小时前
在Ubuntu 22.04系统上安装libimobiledevice
linux·运维·ubuntu
skywalk816312 小时前
linux安装Code Server 以便Comate IDE和CodeBuddy等都可以远程连上来
linux·运维·服务器·vscode·comate
汤姆yu13 小时前
基于python的外卖配送及数据分析系统
开发语言·python·外卖分析
如何原谅奋力过但无声13 小时前
TensorFlow 1.x常用函数总结(持续更新)
人工智能·python·tensorflow
晚风吹人醒.13 小时前
缓存中间件Redis安装及功能演示、企业案例
linux·数据库·redis·ubuntu·缓存·中间件
翔云 OCR API13 小时前
人脸识别API开发者对接代码示例
开发语言·人工智能·python·计算机视觉·ocr
Hard but lovely14 小时前
linux: pthread库的使用和理解
linux