网上的方法
方法一:
因为缺少了openssl-devel这个东西或者./configure过程中缺少参数--with-ssl,所以需要去安装它
centos安装命令: yum install openssl-devel(但是centos系统好像是自带的openssl-devel)
安装完成后重新执行:./configure --with-ssl --prefix=/usr/local/Python3 (一定要有--with-ssl,因为默认安装的涉及到ssl的功能是不可用的,prefix后的路径为你自己的安装路径)
编译安装: make && make install
方法二:
修改你python3目录下的Modules/Setup.dist文件
修改文件:vi /usr/local/Python3/Modules/Setup.dist(修改内容如下)
# Socket module helper for socket(2)
_socket socketmodule.c timemodule.c #去除该行注释
# 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 #有一些说的这一行也去
_ssl _ssl.c \ #去除该行注释
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ #去除该行注释
-L$(SSL)/lib -lssl -lcrypto #去除该行注释
重新编译安装: make && make install
我的方法
如果以上的两种方法已经全部试过还是不行检查一下你的openssl版本
命令:openssl version
如果你的是1.0.1及其以下的版本,恭喜你,python3.7需要1.0.2或者1.1.x的版本才行
解决方法:
尝试更新openssl,如果更新后的版本还是1.0.1或更低。
如果不麻烦并且硬件支持的话重装系统,一定要装新一点的,我的centos6.10不行,然后重装了centos7.6的版本,他的openssl是1.0.2的。
如果硬件不支持或者你重装后比较麻烦可以看看这一篇博客,有没有用不知道,反正看着挺管用的https://www.cnblogs.com/jasonLiu2018/articles/10730605.html
个人建议重装系统,因为你的openssl更新后还是那么老的版本说明你的操作系统也是比较旧的,而python3.7又是比较新的,使用起来不知道后面还会不会出其他的问题,所以建议重装一个新的系统