openssl yum安装或编译安装
Python 的 ssl 模块不可用,导致 pip 无法通过 HTTPS 下载包。这通常发生在你 手动编译 Python 时,没有正确安装或链接 OpenSSL。
1.确认系统 OpenSSL 安装
1 | openssl version |
如果没有安装,或者版本太低(建议 >= 1.1.1),先安装/升级:
1 | # CentOS 7 |
一般高版本的python对openssl版本有要求,需要基于源码编译
2.重新编译 Python 并指定 OpenSSL 路径
- https://mirrors.aliyun.com/macports/distfiles/openssl3
- https://mirrors.aliyun.com/macports/distfiles/openssl3/openssl-3.1.3.tar.gz
OpenSSL 并安装到 /usr/local/openssl-3:
1 | tar -zxvf openssl-3.1.3.tar.gz |
py3.9再次构建编译
cd Python-3.9.19
make clean
./configure --prefix=/usr/local/python3.9 \
--with-openssl=/usr/local/openssl-3 \
--enable-optimizations
make -j$(nproc)
make install
注意:
--with-openssl很关键,它会确保 ssl 模块被编译进 Python。
3.验证 ssl 模块
编译安装完成后,先测试:
1 | /usr/local/python3.9/bin/python3.9 -c "import ssl; print(ssl.OPENSSL_VERSION)" |
正常的话会输出 OpenSSL 版本号。
4.升级pip
确认 ssl 可以用后,再升级 pip:
1 | /usr/local/python3.9/bin/python3.9 -m ensurepip --upgrade |