Py2exe,Runtimeerror与tweepy

时间:2015-04-15 11:49:33

标签: python py2exe tweepy

我想使用twitter的python插件,名为tweepy。

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

import tweepy

我的setup文件如下所示:

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

当我通过命令行执行python setupy.py py2exe时,我得到了这个重复的代码块,直到我得到一个RuntimeError:相比之下超出了最大递归深度。

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])

有谁知道如何摆脱这种循环?

1 个答案:

答案 0 :(得分:1)

0.9.2.2版本的py2exe中的

There seems to be a bug模块six.moves.urllib.parse进入无限递归循环,直到达到最大深度。

解决这个问题的一种方法是,如果你真的不需要这个模块,就是在你的setup.py中排除该模块:

options={
    "py2exe": {
        "includes": ["sip", "tweepy"],
        "excludes": ["six.moves.urllib.parse"]
    }
}