py2exe 因 pandas 导入而失败

py2exe fails with pandas import

我有一个 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 安装的建议吗?

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

import sys
sys.setrecursionlimit(3000)

现在 pandas 导入工作正常。