所以我刚刚在python中编写了这个tkinter程序,一切都运行正常,没有错误,但是当我把它转换为.exe时,我收到了这个错误:
File "tweepy\binder.pyc", line 239, in _call
File "tweepy\binder.pyc", line 189, in execute
tweepy.error.TweepError: Failed to send request: [Errno 2] No such file or directory
.py中的一切正常并且没有错误发生,我在互联网上找不到任何有关此问题的解决方案。 有人可以帮助我,我没有找到任何答案!!
答案 0 :(得分:1)
好的我终于解决了我自己的问题,这是我自己设法找到的唯一解决方案,可能不是最好的,但它确实有效,所以我会一步一步地解释它,所以其他任何有同样问题的人都会这样做'我必须经历我所经历过的事情: 转到tweepy文件夹,找到binder.py打开它,然后在其中找到:
try:
resp = self.session.request(self.method,
full_url,
data=self.post_data,
timeout=self.api.timeout,
auth=auth,
proxies=self.api.proxy,
)
然后在最后添加verify ='cacert.pem',看起来像这样:
try:
resp = self.session.request(self.method,
full_url,
data=self.post_data,
timeout=self.api.timeout,
auth=auth,
proxies=self.api.proxy,
verify='cacert.pem')
保存它,现在你需要修改binder.pyc,因为它是py2exe在编译时使用的,为此创建一个新的脚本并在其中键入:
import py_compile
py_compile.compile('path_to_binder.py')
(在任何修改之前备份binder.py和binder.pyc会更好)
现在将脚本和binder.py(modded one)放在同一个文件夹中(脚本中的路径必须是此文件夹中的binder.py)然后运行脚本
将生成的binder.pyc放入旧的binder.pyc所在的tweepy文件夹中。
现在像你一样运行py2exe,当它完成后找到'cacert.pem'并将它放在.exe所在的'dist'文件夹中,运行.exe,一切都应该完美。