使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标,多个py文件打包exe)
我們編寫的程序可以發給其他小伙伴使用,但是其他小伙伴不一定安裝有python。這時候就需要用到打包啦。打包可以將程序打包成exe文件。然后小伙伴在windows平臺里就可以運行(無需python)。直接成了一款軟件。
打包一般要用到cmd命令行,要求cmd能執行python程序。
教程見鏈接:
cmd執行python程序,文件夾直接進入cmd程序
或者在anaconda的命令行里打包。
原始打包教程,利用anaconda
見鏈接:
python打包成exe 可執行文件 。教程
打包出來的文件,238M.原因是 anaconda里包含了太多我們不需要的包
一.建立虛擬環境打包
Pipenv 是一款管理虛擬環境的命令行軟件,簡單來講,它可以創建一個只在某個目錄下的局部 Python 環境,而這個環境是可以和全局環境脫離開的。
步驟如下:
第一步:安裝 Pipenv
安裝 Pipenv,,此處可以在anaconda的 Anaconda Powershell Prompt 下安裝
第二步:進入虛擬環境
pipenv shell由圖中發現,進入虛擬環境前后CMD行還是有區別的,虛擬環境第二個紅色圈比第一個紅色圈,在前面多幾個英文字母
第三步:安裝依賴的庫
在虛擬環境下安裝 Pyinstaller 和你自己的腳本依賴的第三方庫
比如我的是
這一部分安裝庫之前忘啦截圖,原諒。
第四步:查看安裝的庫有哪些
如果你這時候使用命令 pip list 并發現里面只有很少的庫,這就說明我們成功進入虛擬環境了
虛擬環境應該可以刪除庫吧。指令類似pipenv uninstall 庫
第五步:打包
打包之前必須先把程序復制到cmd工程目錄下。
我的工程目錄是?C:\Users\Shineion\
打包命令有很多,如打包單一程序,多程序,帶圖標…。
最簡單的
pyinstaller -F xx.py結果exe在工程目錄下的dist文件里
這次只有50多M,原先的238m
exe可以運行
注意事項:下次使用虛擬環境時可以直接進入,上次在虛擬環境安裝的包仍然存在,無需重復安裝一些包
我遇到的問題是pipenv有時無法刪除庫 ,有時使用pipenv uninstall 刪除命令之后包還存在。。我的解決方法是刪除虛擬環境,然后重新進來時發現之前安裝的包沒有啦。這樣我們可以進行下一次自定義安裝庫
二.打包帶圖標,并且不顯示控制臺
控制臺指打包出來類似cmd的黑色窗口。
pyinstaller -F -w -i bitbug_favicon.ico hm_004.py-w:不顯示控制臺
-i:圖標
結果;有圖標
圖標在線轉換網站:
http://www.bitbug.net/
無控制臺
多個py文件打包
pyinstaller -F main.py -p py_dir原始程序
這個代碼是網上借鑒別人的。自己一時懶得寫代碼。
cmmd.py
from time import sleepfrom hello import showdef main():count = 1while count <= 5:show(count)sleep(1)count += 1print("Bye!")if __name__ == "__main__":main()hello.py
from word import whatdef show(nbr):res = "[ No.{} | Test: {}.]".format(nbr, what())print(res)word.py
def what():return "Hello, Python"打包命令:
pyinstaller -F cmmd.py -p test結果
附錄:pipenv的常見使用命令
pipenv install :創建虛擬環境
pipenv shell :進入虛擬環境(如果不存在,則創建并進入虛擬環境)
pipenv install flask: 安裝模塊
pipenv uninstall flask :卸載模塊
pipenv graph:查看模塊之間的依賴關系
pip list:查看虛擬環境所有模塊
exit() :退出虛擬環境
pip freeze > requirements.txt:導出虛擬環境所有依賴包名
pip install -r requirements.txt :安裝項目所依賴全部模塊
pipenv uninstall --all :卸載所有包
pipenv lock:生成lockfile
pipenv --rm: 刪除虛擬環境
pipenv run python xxx.py: 虛擬環境運行python
常用pyinstaller 命令
如何打包資源文件見鏈接:
python將資源文件一起打包進exe 講解(有算例)
sklearn模型打包講解
python打包exe 之打包sklearn模型中的各種坑及其解決方法。
本文使用的pipenv來管理虛擬環境,還可以使用anaconda來管理虛擬環境。
anaconda虛擬環境教程大全
電氣工程的計算機萌新:余登武。寫博文不容易。如果你覺得本文對你有用,請點個贊支持下,謝謝。
總結
以上是生活随笔為你收集整理的使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标,多个py文件打包exe)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: trc20是什么通道
- 下一篇: 农业银行lpr定价基准转换是什么意思