转为 .exe 后出现 Tweepy 错误

Tweepy error after turned to .exe

所以我刚刚在 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 中一切正常,没有发生错误,我在互联网上找不到任何解决方案,请有人帮忙。 有人可以帮我解决这个问题吗?我还没有找到任何答案!!

好的,我终于解决了我自己的问题,这是我自己找到的唯一解决方案,可能不是最好的,但它有效,所以我将逐步解释它,以便其他遇到同样问题的人不必经历我经历过的事情: 转到 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(修改后的)放在同一个文件夹中(脚本中的路径必须指向此文件夹中的 binder.py)然后 运行 脚本

将生成的 binder.pyc 放入旧 binder.pyc 所在的 tweepy 文件夹中。

现在 运行 py2exe 就像你一样,当它完成后找到 'cacert.pem' 并将它放在你的 .exe 所在的 'dist' 文件夹中,运行 .exe 和一切都应该完美运行。