【问题标题】:RuntimeError after installation matplotlib安装 matplotlib 后出现 RuntimeError
【发布时间】:2025-12-30 18:50:07
【问题描述】:

我使用 pyqt5 和 numpy 创建了应用程序。我可以使用 py2exe 创建 .exe 文件。好的。

在我使用 matplotlib 制作了我的应用程序的高级版本之后。行。我用'python start.py'成功运行了这个应用程序。一切正常。

我现在尝试制作 .exe。但我得到错误 'RuntimeError: maximum recursion depth exceed'。

很奇怪,但我现在不能用我的简单应用程序制作 .exe(没有 matplotlib) 我在终端中得到重复的字符串(大约几千个字符串)3-4 秒。

    getattr(parent_module, name.rpartition('.')[2])
  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_h                                                                                                    ook
    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_loa                                                                                                    d
    getattr(parent_module, name.rpartition('.')[2])
  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_h                                                                                                    ook
    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_loa                                                                                                    d
    getattr(parent_module, name.rpartition('.')[2])
  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 135, in safe_import_h                                                                                                    ook
    self._info(name, caller, fromlist, level)
RuntimeError: maximum recursion depth exceeded

附:如果我在没有 matplotlib 的情况下重新安装 python 和包 - 我可以制作 .exe 请帮助我,请您提供建议。如何避免。我的应用程序中需要 matplotlib。

谢谢。

【问题讨论】:

    标签: python numpy matplotlib py2exe pyqt5


    【解决方案1】:

    实际上,py2exe 使用任何包(不是纯 python)都很难配置,因为它有很多不受支持的东西,比如你必须处理的字体和编码。 显然是 py2exe 转换过程中的错误,而不是您的代码(因为它可以工作),但是为什么在卸载 matplotlib 后它仍然失败,我不知道,我无法猜测,因为它不应该..

    我的回答是,建议使用 pyqt 其他可以替换 matplotlib 的“插件”,即:

    应该更容易部署..

    【讨论】:

    • 谢谢。会尝试
    • 我有两个应用程序:简单 - 不带 matplotlib,高级 - 带 matplotlib。在安装 matplotlib 之前,我可以为简单的应用程序制作 exe。但是在安装它之后,我什至无法为任何应用程序(简单或高级)制作 exe。两次都出现同样的错误。正如您在代码中看到的那样,我进入终端 3-4 秒打印重复的字符串(窗口中可能有几千个字符串)。但我会按照你的方法尝试。谢谢