日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Pyinstaller+Pipenv打包Python文件的實現(xiàn)示例_python

作者:Dream丶Killer ? 更新時間: 2022-05-02 編程語言

相信大家都試過將Python文件進(jìn)行打包,來發(fā)給其他沒有安裝Python環(huán)境的用戶使用,但通常情況下,打包生成的exe文件都很大,而產(chǎn)生這種情況的原因就是,打包并不會只打包我們所使用的一些庫,在我們?nèi)粘J褂玫沫h(huán)境中,可能會有很多沒有用的關(guān)聯(lián)庫被一起打包。這時,創(chuàng)建一個虛擬環(huán)境就是最好的選擇,然后在虛擬環(huán)境中進(jìn)行打包。

安裝pipnev

pipenv 用來管理虛擬環(huán)境,先安裝一下 pipenv

pip install pipenv

使用 pip show pipenv 檢查是否安裝成功。

前期準(zhǔn)備

創(chuàng)建一個文件夾,來保存虛擬環(huán)境相關(guān)文件,并cd進(jìn)入該文件夾下。

創(chuàng)建虛擬環(huán)境

pipenv install

進(jìn)入虛擬環(huán)境

pipenv shell

安裝項目用到的庫

pip install pandas

如果數(shù)量比較多的話,可以新建一個requirements.txt文件來保存需要的庫名,一起下載。

再在虛擬環(huán)境中運行下面代碼,記得修改requirements.txt文件路徑,這里添加了阿里鏡像速度要快些。

pip install -r D:\requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

在虛擬環(huán)境中安裝pyinstaller

這一步至關(guān)重要,如果沒有在虛擬環(huán)境中安裝pyinstaller的直接打包的話,會使用默認(rèn)python環(huán)境的pyinstaller進(jìn)行打包,那么,恭喜你前面都白做了。

pip install pyinstaller

使用pyinstaller打包

pyinstaller打包有不少可選參數(shù),可以根據(jù)自己的需要進(jìn)行添加。

-F:打包單個文件,產(chǎn)生一個文件用于部署(默認(rèn)),如果代碼都寫在一個 .py 文件時使用,項目有多個文件時不要使用

pyinstaller -F xxx.py

-D:打包多個文件,產(chǎn)生一個目錄用于部署(默認(rèn)),用于框架編寫的代碼打包

pyinstaller -D xxx.py(項目入口文件)

–key=keys:使用 keys 進(jìn)行加密打包

pyinstaller --key=123456 -F xxx.py
  • -d:產(chǎn)生 debug 版本的可執(zhí)行文件
  • -p:用來添加程序所用到的包的所在位置,設(shè)置導(dǎo)入路徑,可以用 ; ( Linux 使用 :)分割來指定多個目錄。
  • -w:表示不用控制臺窗口,使用 Windows 子系統(tǒng)執(zhí)行,當(dāng)程序啟動的時候不會打開命令行(只對 Windows 有效)
  • -c:表示打開控制臺窗口,使用控制臺子系統(tǒng)執(zhí)行,當(dāng)程序啟動的時候會打開命令行(默認(rèn))(只對 Windows 有效)
  • -i:將 file.ico 添加為可執(zhí)行文件的資源,改變程序的圖標(biāo)(只對 Windows 系統(tǒng)有效)

下面是我打包時用的代碼。

  • ./1.ico:exe文件圖標(biāo)路徑
  • ./test.py:代碼路徑
pyinstaller -F -w -i ./1.ico ./test.py

運行完之后,可執(zhí)行文件在dist文件夾下。

下面是兩種情況下打包的對比,可以看到在虛擬環(huán)境中打包生成的可執(zhí)行文件要小很多。

當(dāng)然我們虛擬環(huán)境用完了之后,如果想要刪除虛擬環(huán)境,可以

pipenv --rm 刪除虛擬環(huán)境

這里再給出一些pipenv的常用操作

pipenv --where                 列出本地工程路徑
pipenv --venv                  列出虛擬環(huán)境路徑
pipenv --py                    列出虛擬環(huán)境的Python可執(zhí)行文件
pipenv install                 創(chuàng)建虛擬環(huán)境
pipenv isntall [moduel]        安裝包
pipenv install [moduel] --dev  安裝包到開發(fā)環(huán)境
pipenv uninstall [module]       卸載包
pipenv uninstall --all         卸載所有包
pipenv graph                   查看包依賴
pipenv lock                    生成lockfile
pipenv run python [pyfile]     運行py文件

原文鏈接:https://blog.csdn.net/qq_43965708/article/details/123212603

欄目分類
最近更新