項目場景
我在github
上fork
了一個使用python
編寫的flappybird
游戲,然后想着打包一下。
下載地址
游戲截圖
項目打包
先安裝pyinstaller
庫:
pip install pyinstaller
然后運行打包命令:
pyinstaller -F -w -i flappy.ico flappy.py
遇到的坑
問題1
開始我是在vscode
終端powershell
中運行打包命令,打包過程提示什么dll
文件找不到。
解決1
直接打開cmd
,cd
到項目所在的路徑,再運行打包命令,就成功打包了,中間也不報錯。
問題2
打包后的flappy.exe
是在dist
目錄下,如果直接雙擊會報錯:
方案2
因為該游戲還關聯有音樂和圖片等游戲素材,你需要把它從文件夾中提出來,放到上一級目錄,再次雙擊就可以正常運行了。
問題3
但這里又遇到了一個問題,這打包的游戲也太大了吧,逗我玩的吧??這才多大點游戲,游戲代碼總共也不過500
行,打包后卻是228MB
,這也太誇張了。
方案3
網上查了一下資料,說是anaconda
或miniconda
的原因,打包時會引入一些不必要的模塊,也就增大了程序的體積。推薦在pipenv
創建的虛擬環境在打包。
- 安裝
pipenv
:
pip install pipenv
cd
到項目路徑,運行命令pipenv install
創建虛擬環境。- 運行命令
pipenv shell
激活虛擬環境 - 安裝項目開發中用到的模塊,我這里只用到了
pygame
,就只安裝它了:
pip install pygame
- 當然,
pyinstaller
也要重新在虛擬環境中安裝:
pip install pyinstaller
- 然后,重新運行打包命令:
pyinstaller -F -w -i flappy.ico flappy.py
在pipenv
創建的虛擬環境中打包后,程序的體積就小很多了,只有10.3MB
(記得還是要把打包的程序從dist
文件夾中拿出來,放到上一級目錄)。
溫馨提示
pipenv
創建的虛擬環境保存路徑是在用戶目錄(C:\Users\xxx\
)下的.virtualenvs
文件夾中。如果想刪除虛擬環境,請使用命令:pipenv --rm
。
引用參考
https://zhuanlan.zhihu.com/p/57674343