1. 程式人生 > >pyinstaller打包報錯: RecursionError: maximum recursion depth exceeded,UnicodeDecodeError

pyinstaller打包報錯: RecursionError: maximum recursion depth exceeded,UnicodeDecodeError

RecursionError

想使用python打包生成exe檔案,突然發現在打包過程中會出現:RecursionError: maximum recursion depth exceeded異常,然而百度好久,都在說明一個問題:報錯提示超過最大遞迴深度,解決辦法:

  1. import sys

  2. sys.setrecursionlimit(1000000) #例如這裡設定為一百萬

但是打包命令Pyinstaller -F XXX.py ,該在哪裡加這部分程式碼並沒有提及,通過大量查詢終於發現瞭解決pyinstaller打包過程中出現該類異常解決的辦法:

  1. 執行pyinstaller -F XXX.py 它會在你的目錄檔案生成XXX.spec檔案,然後報錯,出現該類異常。
  2. 開啟XXX.spec檔案,在開頭新增上面兩行程式碼。
  3. 繼續執行打包,但是還檔名: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