Python打包exe程序(pyinstaller)以及打包文件太大的解决方法
編寫的python項(xiàng)目,如何在沒有python環(huán)境的電腦中運(yùn)行?
打包成exe可執(zhí)行程序即可
本文章可以教會(huì)你如何將python項(xiàng)目打包成exe可執(zhí)行程序,以及打包后文件太大該如何解決!
來了來了,開始操作
首先,你需要安裝一個(gè)庫(kù)
這個(gè)庫(kù)叫啥呢,就叫“pyinstaller”,項(xiàng)目都能寫出來,怎么安裝庫(kù)應(yīng)該不需要我多說了吧?
pip install pyinstaller想到可能會(huì)有新手,新手請(qǐng)看👆👆👆
老手請(qǐng)自覺跳過
安裝好庫(kù)了,那么打包命令是啥呢?
👇👇👇
pyinstaller -i 123.ico -F -w main.py- 盡量把打包后的文件放在英文目錄下。
- 多個(gè).py文件打包為單一文件時(shí),即pyinstaller 命令中加入了-F,也是有可能會(huì)導(dǎo)致錯(cuò)誤的。可以不使用-F。
解釋一下常用到的參數(shù):
main.py?:是你的python項(xiàng)目文件
-i?:為main.exe文件指定的圖標(biāo)(如果沒有,則不需要該參數(shù))
123.ico :生成.exe文件的圖標(biāo)(推薦一個(gè)在線轉(zhuǎn)換ico圖標(biāo)的網(wǎng)址)
-F?:生成結(jié)果是一個(gè)exe文件,所有的第三方依賴、資源和代碼均被打包進(jìn)該exe內(nèi)
-w :不顯示命令行窗口(如不用此參數(shù),打包后的程序在運(yùn)行時(shí)會(huì)彈出一個(gè)命令行窗口,我個(gè)人一般是不喜歡它彈出這個(gè)命令行窗口的,除非打包后出現(xiàn)問題,后面會(huì)講到)
來個(gè)表格:
| -i | 為main.exe指定圖標(biāo) | pyinstaller -i 123.ico main.py |
| -w | 不顯示命令行窗口 | 編寫GUI程序時(shí)使用此參數(shù)有用。 |
| -c | 顯示命令行窗口 | 與-w相反,默認(rèn)含有此參數(shù) |
| -F | 生成one-file的程序 | 生成結(jié)果是一個(gè)exe文件,所有的第三方依賴、資源和代碼均被打包進(jìn)該exe內(nèi) |
| -y | 如果dist文件夾內(nèi)已經(jīng)存在生成文件,則不詢問用戶,直接覆蓋 | 默認(rèn):詢問是否覆蓋 |
| -p | 指定額外的import路徑,類似于使用PYTHONPATH | 參見PYTHONPATH |
上面表格中的參數(shù)中,前三個(gè)為Windows和Mac特有的參數(shù),后三個(gè)為與生成結(jié)果有關(guān)的參數(shù) and 通用參數(shù)
打包后,exe程序在當(dāng)前目錄下的dist文件夾中,自行去找哈
接下來說一說剛剛提到的命令行窗口,如果你使用了上面的命令打包后發(fā)現(xiàn),程序打不開😕😕😕?
別慌,看這👇
(文字有點(diǎn)點(diǎn)多,慢慢看,如果沒有遇到這個(gè)問題可以先跳過這部分,以后遇到了再回來看)
首先你需要更改一下命令重新進(jìn)行打包,怎么更改呢?前面我提到過一個(gè)命令行窗口,把打包命令中的-w刪掉,再運(yùn)行命令打包,打包好之后,就需要考驗(yàn)?zāi)愕姆磻?yīng)能力了,此話怎樣呢,因?yàn)閺棾鰜淼拿钚写翱谥粫?huì)停留一會(huì)兒。這時(shí)候,你可以準(zhǔn)備截圖(微信,qq,電腦自帶等很多方式可以截圖),在彈出命令行窗口運(yùn)行出錯(cuò)誤后進(jìn)行截圖。然后就是找問題所在了。
emmm,,,比如說這個(gè)👇
有句話ImportError:OpenCV loader:missing configuration file:['config.py']. Check OpenCV installation.啥意思呢,簡(jiǎn)單來說,缺少了相對(duì)應(yīng)的庫(kù),這里是OpenCV庫(kù)。
這時(shí)候需要在打包時(shí)指定 -p 參數(shù),后面跟上 python 目錄下的第三方庫(kù)模板目錄路徑 site-packages ,再打包就成功了。
pyinstaller -i 123.ico -F -w main.py -p C:/python/lib/site-packages解決后如果沒有問題那就恭喜你,打包完成!
然而你會(huì)發(fā)現(xiàn),有些項(xiàng)目在打包exe程序后的文件大小會(huì)非常大,比如說這個(gè):
這種情況,請(qǐng)往下看
先看看效果怎樣:
可以看到,打包前和打包后的大小差距有多大。
我用的方法:使用pipenv縮小exe
廢話不多說,直接看操作步驟:
1、安裝pipenv
與安裝其他python庫(kù)一樣,在cmd環(huán)境下安裝:
pip install pipenv2、安裝完成后,隨便找一個(gè)盤符,在這個(gè)盤符的根目錄(最好是根目錄)新建一個(gè)文件夾,作為虛擬環(huán)境,然后雙擊進(jìn)入該文件夾
3、在虛擬環(huán)境下安裝python,例如:
pipenv install -python 3.6在這里就有可能遇到第一個(gè)坑了,系統(tǒng)有可能提示無法轉(zhuǎn)換為 “utf-8”,具體原因是因?yàn)橹形霓D(zhuǎn)碼的問題,但是不必深究。這時(shí)候最好的方法是重啟電腦,對(duì)是的,重啟電腦,然后不要打開任何其他程序,重復(fù)上述第2步
4、在命令行下激活虛擬環(huán)境
pipenv shell在這里,可能又會(huì)遇到剛剛第3步中的問題,系統(tǒng)提示無法轉(zhuǎn)換為“utf-8”,沒有辦法,再次重啟電腦吧,然后重新進(jìn)入power shell,再嘗試運(yùn)行 pipenv shell
5、安裝需要的庫(kù)(僅需安裝需要打包的.py文件中所用到的庫(kù))
根據(jù)要打包的程序中導(dǎo)入的庫(kù),在pipenv環(huán)境下重新安裝,例如:
pipenv install pyinstaller pipenv install removebg6、把py腳本文件復(fù)制到這個(gè)新建的目錄下,重新運(yùn)行 pyinstaller,方法、參數(shù)等同以往一樣就OK
?dddd(懂的都懂),好了,問題解決。
如果這篇文章對(duì)你有幫助,關(guān)注點(diǎn)贊收藏唄😉🤩
總結(jié)
以上是生活随笔為你收集整理的Python打包exe程序(pyinstaller)以及打包文件太大的解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机内存的安装方法,内存条怎么装?内存
- 下一篇: python利用pyinstaller打