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

CentOS下使用pip安装包遇SSLError问题求助

编译Python 3.10.9后pip SSL模块不可用问题排查与解决

操作背景

系统环境:CentOS 7.6.1810
已执行操作:

  1. 安装编译依赖:
yum install openssl-devel bzip2-devel libffi-devel
yum groupinstall "Development Tools"
  1. 下载Python 3.10.9源码包,解压后进入源码目录,执行编译安装:
./configure --enable-optimizations
sudo make altinstall
  1. 执行pip时出现以下错误:
Package    Version
---------- -------
pip        22.3.1
setuptools 65.5.0
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
WARNING: There was an error checking the latest version of pip.

问题原因

CentOS 7默认自带的OpenSSL版本为1.0.2,而Python 3.10及以上版本要求OpenSSL版本至少为1.1.1。你安装的openssl-devel是系统默认的1.0.2版本,无法满足Python 3.10编译SSL模块的要求,导致编译过程中SSL模块被自动跳过,最终pip无法建立HTTPS连接。

另外,编译时./configure检测不到符合要求的OpenSSL库时,不会抛出明显错误,只会静默跳过SSL模块编译,这也是你安装过程异常迅速的原因——跳过了大量模块的编译工作。

排查步骤

  1. 检查系统OpenSSL版本:
    执行以下命令确认当前系统OpenSSL版本:
openssl version

若输出为OpenSSL 1.0.2k-fips 26 Jan 2017(CentOS 7默认版本),则确认版本不兼容。

  1. 查看Python编译日志的SSL检测结果:
    进入Python源码目录,搜索编译配置日志中的SSL相关内容:
grep -i "ssl" config.log

若出现checking for SSL_library_init... no或Could not find OpenSSL development files等内容,说明编译时未检测到符合要求的OpenSSL库。

  1. 验证Python SSL模块状态:
    执行Python交互命令,尝试导入ssl模块:
python3.10 -c "import ssl; print(ssl.OPENSSL_VERSION)"

若抛出ModuleNotFoundError: No module named 'ssl'或输出的版本低于1.1.1,说明SSL模块未正确编译。

解决方法

  1. 升级OpenSSL到1.1.1版本:
    下载OpenSSL 1.1.1系列的长期支持版本源码包,解压后编译安装:
cd 源码目录
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make && sudo make install
# 配置环境变量,让系统优先使用新安装的OpenSSL
echo "export LD_LIBRARY_PATH=/usr/local/openssl/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc
echo "export PATH=/usr/local/openssl/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
# 验证版本
openssl version
  1. 重新编译Python 3.10.9:
    进入Python源码目录,清理之前的编译缓存,重新指定OpenSSL路径后编译:
cd Python-3.10.9
make clean
./configure --enable-optimizations --with-openssl=/usr/local/openssl
sudo make altinstall
  1. 验证修复效果:
    再次检查SSL模块状态,并测试pip:
python3.10 -c "import ssl; print(ssl.OPENSSL_VERSION)"
pip3.10 install --upgrade pip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:11:03