Pyinstaller+Pipenv打包Python文件的實(shí)現(xiàn)示例
相信大家都試過(guò)將Python文件進(jìn)行打包,來(lái)發(fā)給其他沒(méi)有安裝Python環(huán)境的用戶使用,但通常情況下,打包生成的exe文件都很大,而產(chǎn)生這種情況的原因就是,打包并不會(huì)只打包我們所使用的一些庫(kù),在我們?nèi)粘J褂玫沫h(huán)境中,可能會(huì)有很多沒(méi)有用的關(guān)聯(lián)庫(kù)被一起打包。這時(shí),創(chuàng)建一個(gè)虛擬環(huán)境就是最好的選擇,然后在虛擬環(huán)境中進(jìn)行打包。
安裝pipnev
pipenv
用來(lái)管理虛擬環(huán)境,先安裝一下 pipenv
。
pip install pipenv
使用 pip show pipenv
檢查是否安裝成功。
前期準(zhǔn)備
創(chuàng)建一個(gè)文件夾,來(lái)保存虛擬環(huán)境相關(guān)文件,并cd
進(jìn)入該文件夾下。
創(chuàng)建虛擬環(huán)境
pipenv install
進(jìn)入虛擬環(huán)境
pipenv shell
安裝項(xiàng)目用到的庫(kù)
pip install pandas
如果數(shù)量比較多的話,可以新建一個(gè)requirements.txt
文件來(lái)保存需要的庫(kù)名,一起下載。
再在虛擬環(huán)境中運(yùn)行下面代碼,記得修改requirements.txt
文件路徑,這里添加了阿里鏡像速度要快些。
pip install -r D:\requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
在虛擬環(huán)境中安裝pyinstaller
這一步至關(guān)重要,如果沒(méi)有在虛擬環(huán)境中安裝pyinstaller
的直接打包的話,會(huì)使用默認(rèn)python
環(huán)境的pyinstaller
進(jìn)行打包,那么,恭喜你前面都白做了。
pip install pyinstaller
使用pyinstaller打包
pyinstaller打包有不少可選參數(shù),可以根據(jù)自己的需要進(jìn)行添加。
-F:打包單個(gè)文件,產(chǎn)生一個(gè)文件用于部署(默認(rèn)),如果代碼都寫(xiě)在一個(gè) .py
文件時(shí)使用,項(xiàng)目有多個(gè)文件時(shí)不要使用
pyinstaller -F xxx.py
-D:打包多個(gè)文件,產(chǎn)生一個(gè)目錄用于部署(默認(rèn)),用于框架編寫(xiě)的代碼打包
pyinstaller -D xxx.py(項(xiàng)目入口文件)
–key=keys:使用 keys
進(jìn)行加密打包
pyinstaller --key=123456 -F xxx.py
- -d:產(chǎn)生
debug
版本的可執(zhí)行文件 - -p:用來(lái)添加程序所用到的包的所在位置,設(shè)置導(dǎo)入路徑,可以用
;
( Linux 使用:
)分割來(lái)指定多個(gè)目錄。 - -w:表示不用控制臺(tái)窗口,使用 Windows 子系統(tǒng)執(zhí)行,當(dāng)程序啟動(dòng)的時(shí)候不會(huì)打開(kāi)命令行(只對(duì) Windows 有效)
- -c:表示打開(kāi)控制臺(tái)窗口,使用控制臺(tái)子系統(tǒng)執(zhí)行,當(dāng)程序啟動(dòng)的時(shí)候會(huì)打開(kāi)命令行(默認(rèn))(只對(duì) Windows 有效)
- -i:將 file.ico 添加為可執(zhí)行文件的資源,改變程序的圖標(biāo)(只對(duì) Windows 系統(tǒng)有效)
下面是我打包時(shí)用的代碼。
./1.ico
:exe文件圖標(biāo)路徑./test.py
:代碼路徑
pyinstaller -F -w -i ./1.ico ./test.py
運(yùn)行完之后,可執(zhí)行文件在dist
文件夾下。
下面是兩種情況下打包的對(duì)比,可以看到在虛擬環(huán)境中打包生成的可執(zhí)行文件要小很多。
當(dāng)然我們虛擬環(huán)境用完了之后,如果想要?jiǎng)h除虛擬環(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 安裝包到開(kāi)發(fā)環(huán)境 pipenv uninstall [module] 卸載包 pipenv uninstall --all 卸載所有包 pipenv graph 查看包依賴 pipenv lock 生成lockfile pipenv run python [pyfile] 運(yùn)行py文件
到此這篇關(guān)于Pyinstaller+Pipenv打包Python文件的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Pyinstaller Pipenv打包Python 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- PyInstaller?完美打包?Python?腳本
- pyinstaller將python程序打包為可執(zhí)行文件
- 如何使用pyinstaller打包多個(gè)和單個(gè)python文件詳解
- 使用PyInstaller庫(kù)把Python程序打包成exe
- python非單一.py文件用Pyinstaller打包發(fā)布成exe
- 用python打包exe應(yīng)用程序及PyInstaller安裝方式
- python之pyinstaller組件打包命令和異常解析實(shí)戰(zhàn)
- 教你使用pyinstaller打包Python教程
- 如何利用pyinstaller打包Python程序?yàn)閑xe可執(zhí)行文件
- python打包pyinstall的實(shí)現(xiàn)步驟
相關(guān)文章
Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問(wèn)題
這篇文章主要介紹了Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問(wèn)題,本文通過(guò)圖文實(shí)例相結(jié)合給大家分享解決方案,需要的朋友可以參考下2021-08-08python numpy實(shí)現(xiàn)多次循環(huán)讀取文件 等間隔過(guò)濾數(shù)據(jù)示例
這篇文章主要介紹了python numpy實(shí)現(xiàn)多次循環(huán)讀取文件 等間隔過(guò)濾數(shù)據(jù)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03python的getattr和getattribute攔截內(nèi)置操作實(shí)現(xiàn)
在Python中,getattr和getattribute是用于動(dòng)態(tài)屬性訪問(wèn)和自定義屬性訪問(wèn)行為的重要工具,本文主要介紹了python的getattr和getattribute攔截內(nèi)置操作實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01python實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)圖書(shū)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03