在Cent0S 7.5下将Python 2.7.5升级到Python 3.6.6后,发现ssl模块不可用,具体详细信息如下所示:
[root@db-server ~]# pip listPackage Version---------- -------pip 19.2.3setuptools 39.0.1WARNING: 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[root@db-server ~]# python -VPython 3.6.6>>> import sslTraceback (most recent call last):File "", line 1, in File "/usr/local/lib/python3.6/ssl.py", line 101, in import _ssl # if we can't import it, let the error propagateModuleNotFoundError: No module named '_ssl'>>>>>> import socket>>> hasattr(socket,"SSL")False>>>
检查发现openssl包已经安装了,然后按照网上的文章,修改Modules/Setup.dist中,找到SSL配置部分,如下截图所示
[root@db-server ~]# yum list installed |grep opensslopenssl.x86_64 1:1.0.2k-19.el7 @baseopenssl-libs.x86_64 1:1.0.2k-19.el7 @base
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
#SSL=/usr/local/ssl