pyinstaller 打包生成exe之後執行提示‘no module name 'xxx'’錯誤
阿新 • • 發佈:2018-11-19
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檔案,檢查是否有錯。有錯會出現呼叫失敗。
咋子