Py2exe,tweepy 的运行时错误

Py2exe, Runtimeerror with tweepy

我想使用名为 tweepy 的 python 推特插件。

在我的 main.py 文件中,我刚刚导入了 tweepy

import tweepy

我的安装文件如下所示:

from distutils.core import setup
import py2exe
setup(
    windows=[{
        "script": 'main.py',
        }],
    options={
        "py2exe": {
            "includes": ["sip", "tweepy"]
        }
    }
)

当我通过命令行执行 python setupy.py py2exe 时,我得到这个重复的代码块,直到我得到一个 RuntimeError: maximum recursion depth exceeded in comparison.

File "C:\Python34\lib\site-packages\py2exe\hooks.py", line 291, in __getattr__
    self.__finder.safe_import_hook(renamed, caller=self)
  File "C:\Python34\lib\site-packages\py2exe\mf3.py", line 138, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python34\lib\site-packages\py2exe\mf3.py", line 120, in import_hook
    module = self._gcd_import(name)
  File "C:\Python34\lib\site-packages\py2exe\mf3.py", line 274, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python34\lib\site-packages\py2exe\mf3.py", line 298, in _find_and_load
    getattr(parent_module, name.rpartition('.')[2])

有谁知道打破这个循环的方法吗?

There seems to be a bug0.9.2.2 版本的 py2exe 中,模块 six.moves.urllib.parse 进入无限递归循环,直到达到最大深度。

如果您真的不需要该模块,一种绕过它的方法是在您的 setup.py:

中排除该模块
options={
    "py2exe": {
        "includes": ["sip", "tweepy"],
        "excludes": ["six.moves.urllib.parse"]
    }
}