解決pyinstaller打包程序太大的問題


項目場景

我在githubfork了一個使用python編寫的flappybird游戲,然后想着打包一下。

下載地址

https://github.com/XavierJiezou/FlapPyBird

游戲截圖

在這里插入圖片描述

項目打包

先安裝pyinstaller庫:

pip install pyinstaller

然后運行打包命令:

pyinstaller -F -w -i flappy.ico flappy.py

遇到的坑

問題1

開始我是在vscode終端powershell中運行打包命令,打包過程提示什么dll文件找不到。

解決1

直接打開cmdcd到項目所在的路徑,再運行打包命令,就成功打包了,中間也不報錯。

問題2

打包后的flappy.exe是在dist目錄下,如果直接雙擊會報錯:
在這里插入圖片描述

方案2

因為該游戲還關聯有音樂和圖片等游戲素材,你需要把它從文件夾中提出來,放到上一級目錄,再次雙擊就可以正常運行了。

問題3

但這里又遇到了一個問題,這打包的游戲也太大了吧,逗我玩的吧??這才多大點游戲,游戲代碼總共也不過500行,打包后卻是228MB,這也太誇張了。

方案3

網上查了一下資料,說是anacondaminiconda的原因,打包時會引入一些不必要的模塊,也就增大了程序的體積。推薦在pipenv創建的虛擬環境在打包。

  1. 安裝pipenv
pip install pipenv
  1. cd到項目路徑,運行命令pipenv install創建虛擬環境。
  2. 運行命令pipenv shell激活虛擬環境
  3. 安裝項目開發中用到的模塊,我這里只用到了pygame,就只安裝它了:
pip install pygame
  1. 當然,pyinstaller也要重新在虛擬環境中安裝:
pip install pyinstaller
  1. 然后,重新運行打包命令:
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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM