用py2exe打包运行后出现requests.exceptions.SSLError: [Errno 2]解决办法

参考StackOverflow的帖子 http://stackoverflow.com/questions/32289972/py2exe-no-such-file-or-directory-error

这个问题是函数requests.certs.where在编译时,为名为cacert.pem的文件返回错误的路径。 requests.utils.DEFAULT_CA_BUNDLE_PATH使用requests.certs.where()设置,然后该变量由各种其他功能导入。

要解决这个问题,您可以将request是安装路径下的文件cacert.pem复制到您的exe的目录,然后将该代码拷贝到您的requests安装包目录下面的utils文件中

code
1
2
from os.path import join, abspath
DEFAULT_CA_BUNDLE_PATH = join(abspath('.'), 'cacert.pem')

或者在您的主模块写入

code
1
2
3
import requests
from os.path import join, abspath
requests.utils.DEFAULT_CA_BUNDLE_PATH = join(abspath('.'), 'cacert.pem')

以上就是用py2exe打包运行后出现requests.exceptions.SSLError: [Errno 2]解决办法的全文介绍,希望对您学习和使用程序编程有所帮助.

posted @ 2017-04-22 16:49  fifo  阅读(289)  评论(0)    收藏  举报