python打包exe后https找不到cacert.pem证书解决方法

背景:

程序中引用了requests库,用requests库发送了https请求,一切正常

但用Py2exe打包成exe后,报错:

IOError: Could not find a suitable TLS CA certificate bundle, invalid path: D:\xxxxx\dist\library.zip\certifi\cacert.pem


打包所使用的代码:

from distutils.core import setup
import py2exe

setup(console=["saver.py"])

命令行中执行:

python create.py py2exe

打包完成,目录下生成dist文件夹



解决方法:

报错找不到:

library.zip\certifi\cacert.pem


缺少cacert.pem那直接补进去不可以吗?

观察dist目录中有library.zip

直接下载cacert.pem打包进zip中certifi目录下是不行的,依然报错


重要操作:

把library.zip解压到当前目录

并把文件夹命名为library.zip,往certifi目录下放cacert.pem

python打包exe后https找不到cacert.pem证书解决方法_第1张图片

python打包exe后https找不到cacert.pem证书解决方法_第2张图片




cacert.pem下载地址:

https://curl.haxx.se/docs/caextract.html

python打包exe后https找不到cacert.pem证书解决方法_第3张图片




终极解决办法!!:

可以不用Py2exe打包

用pyinstaller

pip install pyinstaller

会产生pyinstaller.exe在python27/script/目录下,如果配置过pip的环境变量,就可以直接调用pyinstaller命令


打包非常简单,命令行中:

pyinstaller -F xxx.py


仔细看输出,会显示打包好的exe放在了哪个路径

python打包exe后https找不到cacert.pem证书解决方法_第4张图片


你可能感兴趣的:(python打包exe后https找不到cacert.pem证书解决方法)