pyinstaller:報錯A RecursionError maximum recursion depth exceeded occurred.
阿新 • • 發佈:2020-12-19
技術標籤:pyinstall學習pythonpyinstaller
pyinstaller:報錯A RecursionError maximum recursion depth exceeded occurred.For working around please follow these instructions
錯誤資訊如下
- 將cmd路勁改為main.py路徑,使用pyinstaller -F mian.py 出現以下錯誤
=============================================================
A RecursionError (maximum recursion depth exceeded) occurred.
For working around please follow these instructions
=============================================================
1. In your program's .spec file add this line near the top::
import sys ; sys.setrecursionlimit(sys.getrecursionlimit() * 5)
2. Build your program by running PyInstaller with the .spec file as
argument::
pyinstaller myprog.spec
3. If this fails, you most probably hit an endless recursion in
PyInstaller. Please try to track this down has far as possible,
create a minimal example so we can reproduce and open an issue at
https://github.com/pyinstaller/pyinstaller/issues following the
instructions in the issue template. Many thanks.
Explanation: Python's stack-limit is a safety-belt against endless recursion,
eating up memory. PyInstaller imports modules recursively. If the structure
how modules are imported within your program is awkward, this leads to the
nesting being too deep and hitting Python's stack-limit.
With the default recursion limit (1000), the recursion error occurs at about
115 nested imported, with limit 2000 at about 240, with limit 5000 at about
660.
解決步驟
1. 開啟生成的 .spec 檔案在表頭輸入以下程式碼
import sys
sys.setrecursionlimit(sys.getrecursionlimit()*5)
2. 儲存後,在cmd中執行 pyinstaller myprog.spec
- 注意:cmd路徑為 main.py的路徑