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就不會出錯了

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章