[python]打包成.exe程式

近期在測試使用.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

 

 

-----------------------------------------

有時在會走之前你就得跑

你不解決問題 就等問題解決你