如何解决Python 3.6.5环境下pip3的SSL功能异常问题?
解决Python3.6.5源码编译后pip3 SSL模块不可用问题
我之前也碰到过一模一样的情况,本质是编译Python时没有正确关联OpenSSL库,导致pip3无法通过HTTPS下载包。给你一步步梳理解决办法:
1. 先确保OpenSSL开发依赖已安装
如果是CentOS/RHEL系统,先装系统自带的OpenSSL开发包(要是你自己编译了OpenSSL,比如你提到的openssl-OpenSSL_1_1_1-pre5,可以跳过这步直接看下一步):
yum install openssl-devel -y
如果是Ubuntu/Debian系统:
apt-get install libssl-dev -y
2. 重新编译Python3.6.5
先把之前编译安装的Python3.6.5清理掉:
- 回到你之前编译Python的源码目录,执行:
make uninstall make clean && make distclean
然后根据你的OpenSSL情况配置编译参数:
情况一:用系统自带的OpenSSL
执行配置命令:
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl
情况二:用你自己编译的openssl-OpenSSL_1_1_1-pre5
假设你把这个OpenSSL安装到了/usr/local/openssl目录下,执行:
CPPFLAGS="-I/usr/local/openssl/include" LDFLAGS="-L/usr/local/openssl/lib" ./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=/usr/local/openssl
配置完成后编译安装:
make -j$(nproc) && make install
3. 验证修复效果
先检查Python的SSL模块是否正常加载:
python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"
如果能正常输出OpenSSL的版本号(比如OpenSSL 1.1.1-pre5 ...),说明SSL模块已经成功编译进去了。
再测试pip3安装包:
pip3 install flask
这时候应该就能正常下载安装,不会再出现SSL相关的错误了。
内容的提问来源于stack exchange,提问作者Gopal
相关产品推荐
相关产品推荐

