問題描述
最近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就不會出錯了