pyinstaller打包報錯: RecursionError: maximum recursion depth exceeded,UnicodeDecodeError
阿新 • • 發佈:2018-12-11
RecursionError
想使用python打包生成exe檔案,突然發現在打包過程中會出現:RecursionError: maximum recursion depth exceeded異常,然而百度好久,都在說明一個問題:報錯提示超過最大遞迴深度,解決辦法:
-
import sys
-
sys.setrecursionlimit(1000000) #例如這裡設定為一百萬
但是打包命令Pyinstaller -F XXX.py ,該在哪裡加這部分程式碼並沒有提及,通過大量查詢終於發現瞭解決pyinstaller打包過程中出現該類異常解決的辦法:
- 執行pyinstaller -F XXX.py 它會在你的目錄檔案生成XXX.spec檔案,然後報錯,出現該類異常。
- 開啟XXX.spec檔案,在開頭新增上面兩行程式碼。
- 繼續執行打包,但是還檔名:pyinstaller -F XXX.spec ,執行該檔案,不然前面功夫白費了。
然後應該就會打包成功。
發生此類異常原因:python預設的遞迴深度是很有限的(預設是1000),因此當遞迴深度超過999的樣子,就會引發這樣的一個異常,而在打包過程中引入的包遞迴深度可能比預設深度大,因此會引發異常。
UnicodeDecodeError
pyinstaller 打包過程中 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 81: invalid continuation byte
在你打包的命令列中先輸入chcp 65001
然後再輸入打包命令。 pyinstaller -F xxx.py,如果發生過上面異常,記得執行語句應該是pyinstaller -F xxx.spec