今天給以前寫的python腳本用pyinstaller打包的時候,居然報錯了
-
-
File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit
-
return visitor(node)
-
File "d:\programdata\anaconda3\lib\ast.py", line 261, in generic_visit
-
self.visit(item)
-
File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit
-
return visitor(node)
-
File "d:\programdata\anaconda3\lib\ast.py", line 263, in generic_visit
-
self.visit(value)
-
File "d:\programdata\anaconda3\lib\ast.py", line 253, in visit
-
return visitor(node)
-
RecursionError: maximum recursion depth exceeded
看上去似乎是某個庫自己遞歸遍歷玩的太嗨了,超過了python的棧高度限制
搜索了一番,很快找到了解決辦法: https://stackoverflow.com/questions/38977929/pyinstaller-creating-exe-runtimeerror-maximum-recursion-depth-exceeded-while-ca
在此總結下解決步驟:
1)pyinstaller -F xxx.py
這一步肯定會報上述錯誤導致失敗,但是會產生一個xxx.spec文件
2)在xxx.spec文件中增加兩行(添加在原文件第二行):
-
import sys
-
sys.setrecursionlimit( 5000)
3)pyinstaller xxx.spec
打包成功。
-