在學習python的過程中,在IDE編寫完成py項目,運行成功想要封裝成exe,方便分享給不同的人即使別人沒有安裝python也可以使用。
封裝的過程中遇到一些問題,記錄一下,方便自己和他人查閱。
以經典教材的alien_invasion為例。編寫完成后,在IDE環境下可以正常運行,使用pyinstall工具封裝成exe,在py文件目錄下進入cmd,例如E:\Python\Alien_Game>pyinstaller -F -w alien_test.py
在生成中dist文件夾下可以找到生成的exe文件,把依賴文件放入到同一目錄下,打開exe出現已停止工作的問題。經摸索發現是因為
self.font=pygame.font.SysFont("none",36) 中默認none的問題,將其改為:
self.font=pygame.font.SysFont("SimHei",36) 解決相關問題。SimHei字體還可正常顯示中文字符,防止出現中文亂碼的問題。
pyinstall指令參考https://msd.misuland.com/pd/3223833238703184482
查詢過程中還發現幾個常見問題,整理如下:
1.多文件打包 https://www.cnblogs.com/jackzz/p/9431923.html
2.PyQt5安裝有問題,通過pip安裝,在一開始封裝的過程中,為了方便看到問題,可以采用E:\Python\Alien_Game>pyinstaller -F -c alien_test.py的方式,通過控制台看到錯誤提示方便定位。
3.有些時候封裝import了其他模塊,pyinstaller找不到,需要將依賴路徑添加上去 ,在指令最后加上-p address
4.生成exe文件注意路徑,盡量使用相對路徑,而且需要注意依賴文件和exe的相對位置,方便在不同的環境下移植運行。
記錄如上,方便你我。