資訊

解決 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 仍舊會出現這個錯誤。

談自力解決之兩三

此為 2010-11 間之文章。

2014-02-23 註:修改註腳等微幅調整

縱觀歷史,當遭遇資源不足的窘境時,幾乎所有的人必奮力而出,或摸索前趨、師法前人地找出對應的解決方案。當一地的田產不足供給眾多的人口時,許多人不畏艱辛、遠赴他鄉,找尋生存的一線曙光;當治安敗壞時,鄉人或集結起來,拜師練拳,捍衛自己的田園。此等例子太多太多,若是一一盡寫,恐怕幾本書都不夠寫了。且容筆者將生活中較為熟悉的幾個案例列敘出來,並發表管中之見,或從管中發出幾響砲聲。