1. 程式人生 > 程式設計 >使用虛擬環境打包python為exe 檔案的方法

使用虛擬環境打包python為exe 檔案的方法

使用過anaconda環境下打包py檔案的一點感悟,使用的是pyinstaller+anaconda環境下打包py檔案

打包: pyinstaller -F -w -i logo.ico xxxx.py

-F:強制打包

-w:不帶後臺命令視窗

-i: 使用logo圖示的地址

需要打包的檔案

遇到的問題:

1.首先對於使用anaconda打包py檔案是存在問題的;

1)打包出來的exe會很大,會打包很多關聯庫;

2)而其中的一些關聯庫是沒有用,而匯入這些庫會拖慢程式執行的效率。

解決:使用虛擬環境進行打包

1.使用pipenv

虛擬環境的應用可以用pipenv

安裝pipenv :pip install pipenv

使用pipenv建立虛擬環境,通過命令列:pipenv install 建立虛擬環境

建立虛擬環境有主意的是:建立的虛擬環境是在一個專案檔案下的路徑上建立的

3.建立完成後可以通過pipenv shell 進入虛擬環境

4.進入後可以通過pip install 包 對依賴的第三方庫包進行安裝

pipenv install 包是對庫包進行配置匯入繫結到配置檔案pipfile中

最後可以在虛擬環境中安裝pyinstaller來對需要打包的檔案進行打包;

2.使用virtualenv

1.安裝virtualenv :pip install virtualenv

2.在相應的專案目錄下面建立虛擬環境:cmd 中virtualenv+venv

(命名)

virtualenv --no-site-packages --python=2.7 env

--no-site-packages:

預設情況下,虛擬環境會依賴系統環境中的site packages,就是說系統中已經安裝好的第三方package也會安裝在虛擬環境中,如果不想依賴這些package,那麼可以加上引數--no-site-packages建立虛擬環境

3.啟用環境:專案路徑下;venv\scripts\activate

4.安裝庫pip install xxxx

批量安裝pip install -r xxx.txt

打包安裝遇到的問題分享:

1.在進行打包的時候遇到報錯:

Fatal error: PyInstaller does not include a pre-compiled bootloader for your
platform.https://pyinstaller.readthedocs.io/en/stable/bootloader-building.html

查閱資料後發現可以通過降級實現,後來我發現造成這個問題主要是後臺的win10防火牆吧我虛擬環境中的pyinstaller的pyinstaller\PyInstaller\bootloader\Windows-32bit中的runw.exe刪掉了,可以通過原有python庫中已有的庫中去複製貼上到相應的路徑下,防火牆應該時刪掉了某些重要的東西。

但是我發現後來打包中一旦帶有

2.打包後發現的一些問題:numpy: No module named ‘numpy.random common'

可以發現使用numpy下,pandas的下引用的numpy匯入失敗,經查閱這可能是版本問題造成的

可以先解除安裝原有的版本pip uninstall numpy

改為安裝pip install numpy==1.16.2

3.distutils not included with latest virtualenv (16.4.0)#4064

打包出來可能會發現缺少匯入包distutils,因為distutils是內建庫,無法pip install 安裝,並且virtualenv16.4以後就不再自帶庫distutils庫了。

所以可以通過降低virtualenv解決這個問題;

總結

以上所述是小編給大家介紹的使用虛擬環境打包python為exe 檔案的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!