直接说解决方法:
在python源码包make之前,先在Modules文件夹下对Setup.dist进行修改。其他帖子说的对Setup文件修改需要先进行./configure才会有Setup这个文件。在此之前直接修改Setup.dist既可。修改内容如下
有的帖子说需要将第二行的#_socket socketmodule.c也放开,经测试不放开注释也可以,但是不知道代码具体有什么作用,还请大佬指教。
SSL=/usr/local/openssl 这里,其他帖子写的最多的路径是/usr/local/ssl,这里就是openssl的安装路径,名字不同而已,要以自己的实际情况为准
我在修改之后,进行make,但是报错如下:
./Modules/_ssl.c:3140: 错误:隐式声明函数‘SSL_CTX_set_post_handshake_auth’
如果你也出现类似这种错误,就要考虑下是openssl版本的问题,报这个错误的时候我是用的版本是openssl-1.1.1-pre8.tar.gz,后来我尝试使用openssl-1.0版本,报错是libressl too old,然后我又更换为openssl-1.1.1d.tar.gz版本,编译成功。
最后make && make install 成功。
写的比较乱,总结下就是如果出现No module named '_ssl’报错,除了需要改下配置文件,还需要考虑openssl的版本问题。