问题:
ubuntu源码编译安装python3.6.5后使用requests库时,访问https的网站报错SSL module is not available
解决:
1. 去掉Modules/Setup.dist 207-210行代码的注释并修改ssl文件位置
# 查看ssl文件位置
sudo openssl version -a
# 进入python3.6.5源码路径
cd /usr/bin/python3.6.5
# 修改setup.py文件
sido vim Modules/Setup.dist
# 修改结果如下:
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/lib/ssl # 你的ssl文件位置
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
2. 修改setup.py文件
sudo vim setup.py
# 修改后结果如下
# Detect SSL support for the socket module (via _ssl)
search_for_ssl_incs_in = [
'/usr/local/ssl/include',
'/usr/contrib/ssl/include/openssl''
]
3. 重新编译安装
sudo ./configure --enable-optimizations
sudo make -j 2
sudo make altinstall
4. 测试功能正常
ubuntu@VM-0-14-ubuntu:~$ python
Python 3.6.5 (default, Oct 22 2019, 09:53:29)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>