近期在測試使用.NET C# Call Python , 其中一個方法就是將python 打包成為.exe來執行
但在打包的時候遇到了一些問題
這裡記錄一下
問題一
1. RecursionError: maximum recursion depth exceeded。
在打包的時候, 會在命令提示字元輸入 來執行打包語法
pyinstaller -F main.py
解決方法:
修改main.py 資料夾下的main.spec 在開頭輸入以下語法
import sys
sys.setrecursionlimit(100000)
回到命令提示字元後 執行以下語法即可
pyinstaller main.spec
2. pyinstaller UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xce in position 109: invalid continuation byte
因為命令提示字元預設是 繁體中文 代碼為950 如下圖(對命令提示字元icon點一下選取內容即可看到此畫面)
修改方式也很簡單 輸入以下指令 65001 是UTF-8的代碼
chcp 65001
輸入完成後 會新開視窗 在執行一次 pyinstaller main.spec即可
注意打包完成的.exe會在 main.py的目錄中產生兩個資料夾 (build、dist)
在dist 會找到我們要的.exe
main.py
|___build
|___dist
|___main.exe
-----------------------------------------
有時在會走之前你就得跑
你不解決問題 就等問題解決你