建立虛擬環境解決python打包exe檔案過大的問題。

2020-09-22 15:01:14

我們編寫的程式可以發給其他小夥伴使用,但是其他小夥伴不一定安裝有python。這時候就需要用到打包啦。打包可以將程式打包成exe檔案。然後小夥伴在windows平臺裡就可以執行(無需python)。直接成了一款軟體。

打包一般要用到cmd命令列,要求cmd能執行python程式。
教學見連結:
cmd執行python程式,資料夾直接進入cmd程式
或者在anaconda的命令列裡打包。

原始打包教學,利用anaconda
見連結:
python打包成exe 可執行檔案 。教學

打包出來的檔案,238M.原因是 anaconda裡包含了太多我們不需要的包

建立虛擬環境打包

Pipenv 是一款管理虛擬環境的命令列軟體,簡單來講,它可以建立一個只在某個目錄下的區域性 Python 環境,而這個環境是可以和全域性環境脫離開的。

步驟如下:

第一步:安裝 Pipenv
安裝 Pipenv,,此處可以在anaconda的 Anaconda Powershell Prompt 下安裝

pip install pipenv

第二步:進入虛擬環境

pipenv shell

由圖中發現,進入虛擬環境前後CMD行還是有區別的,虛擬環境第二個紅色圈比第一個紅色圈,在前面多幾個英文字母

第三步:安裝依賴的庫
在虛擬環境下安裝 Pyinstaller 和你自己的指令碼依賴的第三方庫
比如我的是

pipenv install pyinstaller
pipenv install opencv-python

這一部分安裝庫之前忘啦截圖,原諒。

第四步:檢視安裝的庫有哪些
如果你這時候使用命令 pip list 並行現裡面只有很少的庫,這就說明我們成功進入虛擬環境了

虛擬環境應該可以刪除庫吧。指令類似pipenv uninstall 庫

第五步:打包
打包之前必須先把程式複製到cmd工程目錄下。
我的工程目錄是‪C:\Users\Shineion\
打包命令有很多,如打包單一程式,多程式,帶圖示…。

最簡單的

pyinstaller -F xx.py

結果exe在工程目錄下的dist檔案裡
這次只有50多M,原先的238m

exe可以執行

注意事項:下次使用虛擬環境時可以直接進入,上次在虛擬環境安裝的包仍然存在,無需重複安裝一些包

我遇到的問題是pipenv無法刪除庫 ,使用pipenv uninstall 命令之後包還存在。。我的解決方法是刪除虛擬環境,然後重新進來時發現之前安裝的包沒有啦。這樣我們可以進行下一次自定義安裝庫

附錄: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

在這裡插入圖片描述
電氣工程的計算機萌新:餘登武。寫博文不容易。如果你覺得本文對你有用,請點個贊支援下,謝謝。
在這裡插入圖片描述