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