1. 程式人生 > >pyinstaller 打包生成exe之後執行提示‘no module name 'xxx'’錯誤

pyinstaller 打包生成exe之後執行提示‘no module name 'xxx'’錯誤

python 3.7

pyinstaller 3.4

具體情況:

pycharm中點選執行可成功執行,生成正確結果,沒有報錯。

雙擊run.py(程式執行的主檔案),執行,可生成正確結果,沒有報錯。

pyinstaller打包生成exe後,雙擊exe檔案,報錯。

解決嘗試:

get_log_inf.py 為自定義模組檔案,與run.py放在同級資料夾下,理論上呼叫是沒有問題的

在pycharm中也可以在run中正常跳轉到get_log_inf檔案,說明可以正常尋到get_log_inf檔案,問題應該不是出在呼叫上

 

在get_log_inf.py中新增if __name__ == '__main__':

並單獨執行此py檔案,發現報錯,出現一個檔案編碼錯誤,(沒有留圖,大概意思就是UTF-8無法解碼某個字元),在檔案頭新增# -*- encoding: gb2312 -*-,再次執行,無錯誤通過

再次打包exe,雙擊exe,正常執行生成正確結果,無錯誤。

 

問題解決!

總結:

可能是因為呼叫的緣故,編碼錯誤這個問題被忽略掉了,在打包成exe之後,觸發這個隱藏錯誤。

建議出現‘no module name 'xxx'’錯誤,先單獨執行無法呼叫的py檔案,檢查是否有錯。有錯會出現呼叫失敗。

咋子