解決 cx_Freeze 做出的 .exe 檔無法在中文路徑下執行的問題
最近因為協助 Lonote 筆記軟體在 Windows 下的打包工作中,因為 Py2exe 至今對這軟體使用的 Python3 不支援,所以採用 cx_Freeze 將用 Python3 寫成的程式和相依的函式庫綁在同一個資料夾中,以方便廣大沒有安裝 Python3 和 PyQt4 的 Windows 用者使用。
但對於中文使用者來說, cx_Freeze 有相當嚴重的缺點,那就是在 setup.py 中,若 cx_Freeze.Executable 之 Base = ‘Win32GUI’(該參數的值為 ‘Win32GUI’ 時),做出來的視窗程式 .exe 檔無法在含有中文名稱的路徑下執行。若嘗試執行,則會跳出 “cannot get zipimporter instance” 的警告視窗。目前的正式版本 4.2.3 仍舊會出現這個錯誤。