虛擬環境下通過pyinstaller 打包


使用pyinstaller打包.py文件時,會把很多已安裝的無關庫同時打包進去,導致打包生成的.exe文件體積過大。使用pipenv創建虛擬python環境,在虛擬環境中安裝.py文件所用到的庫(即py文件中import 的第三方庫),然后在pipenv所創建的虛擬環境中使用pip安裝打包所用到的pyinstaller。注意:本機安裝過pyinstaller的也要重新進入虛擬環境中安裝,不然會使用pyinstaller命令打包時,還是會生成大體積的.exe可執行文件。

但是實測感覺沒啥區別,小應該是會小一點的。

具體步驟如下:

情況一:初次打包

1、在命令行(CMD)使用pip命令安裝pipenv庫,用於創建虛擬環境

 

pip install pipenv

但是我安裝的時候,提示我的pip版本太低,讓我更新pip,但是我使用提示的python -m pip install --upgrade pip升級失敗,以下是三個解決方案:

1,使用python -m pip install --upgrade pip升級失敗
2,使用python -m pip install -U --force-reinstall pip依然失敗
3,使用pip install --user --upgrade pip成功升級

到這兒pip更新完畢,運行這條代碼可以看pip安裝了什么東西:pip list

這兒出現WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
          Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
          To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.

出現這個后,可能會導致直接pip寫法時,會出現是外部文件或則不可執行程序,這個時候根據提示寫:python -m pip ...后即可執行了。

之后python -m pip install pipenv或則pip install pipenv安裝pipenv,但是出現安裝失敗,可能是因為找不到下載地址,或則沒有管理員權限。

這個時候采用下面兩個方法:

1,以管理員運行命令提示行,在安裝。

2,上述不行之后,采用調用國內鏡像庫安裝:

pip install keras -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

(其中的keras是你需要下載的,根據自己需求自行更改)即可安裝成功了應該。

 

 

 看到pipenv之后說明已經安裝好了。

2、新建一個准備當環境的文件夾,並cd進入該文件夾

3、建立虛擬環境

 

pipenv install

4、進入虛擬環境(以下操作皆為虛擬環境下的操作)

 

pipenv shell

5、安裝.py文件用到的模塊

 

pip install 【.py用到的模塊】

6、安裝pyinstaller模塊,用於打包.py文件

 

pip install pyinstaller

7、使用pyinstaller打包文件

 

pyinstaller -Fw test.py(.py文件根據實際情況更改)

這里這個路徑的話,最好直接把要打包的文件放到本目錄下打包,不在本目錄下打包,test.py就要包含絕對路徑。

打包的程序運行出現no module name 【程序要引用的模塊】,采用pyinstaller的-p參數引入模塊的地址,多個地址以分號隔開;

8、結果文件

 

運行完第7步之后,在目錄下回生成‘dist’文件夾,里面存放的就是結果文件。

情況二:再次打包

若再次打包時,情況一中所創建的虛擬環境未曾刪除,可跳過情況一中的第1、2、3步,直接進行第四步進入虛擬環境。然后第5步同理保留原先添加過的py模塊,即若無新增新的模塊,可跳過第5步和第6步,直接進行第7步打包操作。

刪除虛擬環境:先exit()退出虛擬環境,然后刪除虛擬環境使用:pipenv --rm

要刪除虛擬環境,可以先卸載掉之前在虛擬環境中安裝的庫,既然都要刪了,那庫耶不用了。

1、cd進入此前創建虛擬環境的文件夾。
2、進入虛擬環境(以下操作皆為虛擬環境下的操作)

pipenv shell


3、安裝.py文件用到的模塊()

pip install 【相較上一次打包新增的模塊】

4、使用pyinstaller打包文件

pyinstaller -Fw test.py(.py文件根據實際情況更改)

 



 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM