天天看點

Pygame使用pyinstaller打包exe無法運作,顯示 failed to execute script的問題問題描述原因剖析解決方法

問題描述

最近pyinstaller更新後終于支援python3.6了,我就迫不及待的想用它來打包釋出我平常用pygame做的小遊戲,在指令框中運作

pyinstaller -D -m xxx.py
           

打包是成功的,但是運作會顯示已停止程式,或是顯示 failed to execute script

原因剖析

經過我查找代碼一次次的打包終于發現是出在pygame的字型設定代碼上,原來錯誤的代碼如下:

font=pygame.font.Font(None,36)#導入字型
           

因為打包後的exe找不到字型資源,是以就出錯了。。

另一種可能是pygame需要的資源如圖檔音樂等pyinstaller是不會給你打包的,需手動加入。

解決方法

将代碼替換為:

font=pygame.font.SysFont('arial',36)
           

這樣就能調用系統已有的字型,

再次打包,最後将pygame需要的資源如圖檔音樂等檔案與exe放在同一目錄下,運作exe就不會出錯了