python源码安装关于ssl的坑
之所以用源码安装也是因为pip安装依赖的时候出现错误的,很奇特的错误。原本都没有注意到这个问题,如果不是用pipreqs ./导出当前项目的依赖包还不会意识到这个问题。两个项目,同样的环境却一个能成功生成requirements.txt而另一个不行。原因如下:
- pipreqs 工具在读取项目导入依赖的时候,映射依赖名称错误导致本地已安装但读取错误,故下载。这让我了解到pipreqs是手动写的映射。
- brew安装的python3.5自带的openssl版本过低,在请求下载的过程中被官网拒绝导致下载失败。
原本想重新安装,但是brew只能安装最新版的3.7。由于需要保持线上线下环境一致的问题,所以只能另想办法了。公司大佬推荐了源码安装,这样也方便管理。所以我也就入坑了。
原本按照网上的三步走,一切顺利的进行着,正确安装了,但是在import ssl的时候报错了。查了网上的解决办法如下:
- 执行命令:./configure --enable-optinizations --prefix=/usr/local/python3.5/ --with-ensurepip --with-ssl
- 修改解压包文件:Modules/Setup.dist文件的207-210行去掉注释
绝大部分都是这两种办法,但是这两种办法没有效果。最终使用的ssl还是最原版系统自带的。我都快绝望了,新环境没有装好,老环境也删除了。
最后抱着试试的态度,直接搜“源码安装python遇到ssl模块找不到的问题”,结果还真找到了一种解决办法:
在上文第二步的基础上再修改一个文件&#