You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7.9编译安装Python3.10后SSL模块缺失问题求助

解决CentOS 7.9编译Python3.10.12后SSL模块缺失问题

CentOS 7.9默认的OpenSSL版本是1.0.2,而Python 3.10要求OpenSSL版本至少为1.1.1,所以哪怕你装了openssl-devel,编译时也没法正常启用SSL模块,导致_ssl模块缺失,进而引发pip的SSL连接错误。

下面是具体解决步骤:

一、清理已安装的Python3.10

  • 删除之前创建的软链接:
    sudo rm -f /usr/local/bin/python3
    
  • 卸载通过altinstall安装的Python3.10:
    sudo rm -rf /usr/local/bin/python3.10
    sudo rm -rf /usr/local/lib/python3.10
    

二、升级OpenSSL到1.1.1版本

CentOS7默认软件源里的OpenSSL版本不够,得手动编译安装高版本:

  1. 安装编译依赖:
    sudo yum install -y gcc make perl-core zlib-devel
    
  2. 下载并解压OpenSSL 1.1.1稳定版(这里用1.1.1w为例):
    wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
    tar -xvf openssl-1.1.1w.tar.gz
    cd openssl-1.1.1w
    
  3. 编译安装,指定安装路径避免覆盖系统默认版本:
    ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
    make
    sudo make install
    
  4. 配置系统优先使用新安装的OpenSSL:
    sudo echo "/usr/local/openssl/lib" >> /etc/ld.so.conf.d/openssl.conf
    sudo ldconfig
    sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
    
  5. 验证版本,输出显示OpenSSL 1.1.1w就说明升级成功:
    openssl version
    

三、重新编译Python3.10.12

  1. 回到Python源码目录(如果已经删除,重新解压下载的Python-3.10.12.tgz):
    cd Python-3.10.12
    make clean  # 清理之前的编译缓存
    
  2. 配置编译参数,必须指定新安装的OpenSSL路径:
    ./configure --enable-optimizations \
    --with-openssl=/usr/local/openssl \
    --with-openssl-rpath=auto
    
    这里必须加--with-openssl参数,因为系统默认的OpenSSL版本不满足Python3.10的要求,得手动指向我们刚装的高版本。
  3. 编译并安装:
    make
    sudo make altinstall
    
  4. 重新创建软链接:
    sudo ln -s /usr/local/bin/python3.10 /usr/local/bin/python3
    

四、验证修复效果

  1. 检查SSL模块:
    python3.10 -m ssl
    
    没有报错就说明SSL模块已正常加载。
  2. 测试pip:
    python3.10 -m pip install --upgrade pip
    
    此时应该能正常连接PyPI,不会再出现SSL相关错误。

内容的提问来源于stack exchange,提问作者Fadwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 21:20:24