py2exe失败并导入pandas

时间:2015-12-11 17:59:08

标签: python py2exe enthought canopy

我有一个python脚本,我想用py2exe制作成可执行文件。当我尝试导入pandas时它失败了(这实际上就是我在示例中失败的脚本):

import pandas

回溯看起来像:

File "c:\users\***\appdata\local\enthought\canopy\user\lib\site_packages\py2exe\mf.py", line 724, in import_hook return Base.import_hook(self,name,caller,fromlist,level)
RuntimeError: maximum recursion depth exceeded

我怀疑这个问题可能与Canopy Python发行版有关,但我没有一个简单的替代方法来测试。

这是我的设置文件:

distutils.core.setup(
    options = {
        "py2exe": {
            "includes": ["pandas", "scipy"],
            "packages": ["matplotlib", "pytz"],
            "dll_excludes": ["MSVCP90.dll", ....],
        }
    }
    data_files=matplotlib.get_py2exe_datafiles(),
    windows=['just_pandas.py']
)

我有两个问题。 1)有没有办法让pandas导入与py2exe一起工作? 2)如果我无法使用Canopy Python发行版解决此问题,那么对于Windows的替代Python安装有何建议?

1 个答案:

答案 0 :(得分:1)

事实证明,解决方案只是重置递归限制。所以我将这些行添加到我的setup.py文件中:

import sys
sys.setrecursionlimit(3000)

现在pandas导入工作正常。