日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python打包exe程序(pyinstaller)以及打包文件太大的解决方法

發(fā)布時(shí)間:2023/12/8 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python打包exe程序(pyinstaller)以及打包文件太大的解决方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編寫的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è)表格:

參數(shù)名描述說明
-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è)為WindowsMac特有的參數(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 pipenv

2、安裝完成后,隨便找一個(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 removebg

6、把py腳本文件復(fù)制到這個(gè)新建的目錄下,重新運(yùn)行 pyinstaller,方法、參數(shù)等同以往一樣就OK

?dddd(懂的都懂),好了,問題解決。

如果這篇文章對(duì)你有幫助,關(guān)注點(diǎn)贊收藏唄😉🤩

總結(jié)

以上是生活随笔為你收集整理的Python打包exe程序(pyinstaller)以及打包文件太大的解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。