【问题标题】:how to solve RecursionError with pyintaller?如何使用 pyinstaller 解决递归错误?
【发布时间】:2018-08-18 15:21:57
【问题描述】:

我创建了关于编辑 csv 文件的代码 (a.py),只使用了一些 for 循环和 while 循环、pandas loc 函数等。 但此代码应加载 csv 文件才能运行。

当我尝试使用pyintaller 将此 a.py 打包为 exe 时, 它说:

对于字段,iter_fields(node) 中的值: RecursionError: 超出最大递归深度。

我在 Windows 10 中,python:3.6 pyinstaller:3.4.dev0+7817d3fac 使用 anaconda 提示并输入:pyinstaller 'path'/a.py -F . 是不是因为没有引用csv文件?

【问题讨论】:

    标签: python-3.x pandas pyinstaller


    【解决方案1】:

    考虑创建一个 .spec 文件并设置更高的递归限制。

    通过运行创建规范文件:

    pyi-makespec -F a.py
    

    然后编辑 .spec 文件以通过在顶部添加以下内容来设置递归限制:

    # -*- mode: python -*-
    import sys
    sys.setrecursionlimit(9000)
    

    最后,通过将您的规范文件传递给 pyinstaller 来构建您的 EXE:

    pyinstaller a.spec
    

    【讨论】:

    • 我将spec文件recursionlimit修改为20000后,又出现一个错误:异常:找不到现有的PyQt5插件目录检查路径:C:/qt5b/qt_1524647842210/_h_env/Library/plugins
    • 带有 PyInstaller 的 PyQt5 是一个完全不同的问题。在您的规范文件中,您需要添加“ pathex=['env\\Lib\\site-packages\\PyQt5\\bin' ”,以及“ hiddenimports=['PyQt5.sip'] ”。
    • 我应该简单地更改变量 panthex,还是添加另一个?在 'env\\' 之前,我应该添加驱动程序 d: 还是什么?
    【解决方案2】:

    我通过安装 PyQt5 成功完成了该过程,我 conda 列出它发现它存在“pyqt”,但实际上 pyQt5 尚未安装。所以我 pip install pyqt5 并成功了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 2018-12-03
      • 1970-01-01
      • 2020-11-27
      • 2021-06-25
      • 2022-01-05
      相关资源
      最近更新 更多