將Python程式打包為exe
當Python專案編碼完成之後,有時候我們需要讓其在沒有Python環境的電腦上執行,此時我們就需要將Python專案進行打包了。
本篇文章主要是基於Python的第三方庫pyinstaller進行的。使用pyinstaller打包Python專案,相對於C和C#專案的打包要簡單很多。
專案地址
pyinstaller git
pyinstaller安裝
pip install pyinstaller
環境要求
python版本:2.7或3.4-3.7,當需要使用位元組碼加密時需要PyCrypto 2.4+
系統要求:Windows、Linux、macOS都支援,具體使用說明請看官網介紹。本次實踐主要在win10上進行。
引數介紹
官網引數詳細介紹,在使用pyinstaller打包Python專案的時候,需要指定一些引數,詳細介紹請參加官網。也可以通過pyinstaller -h命令檢視pyinstaller的引數使用介紹。
常用引數介紹:
- -D,–onedir:建立一個資料夾包含exe檔案(預設)
- -F,–onefile:打包之後只會生成一個exe的檔案
- -c,–console,–nowindowed:使用控制檯視窗(預設)
- -w,–windowed,–noconsole:使用視窗顯示
- -i:設定打包exe的圖示,預設使用的是Python的圖示
單個py檔案打包
import cv2
img = cv2.imread("logo.jpg")
cv2.imshow("logo",img)
cv2.waitKey()
這個程式展示了使用OpenCV來讀取圖片然後顯示,編輯完成之後進入到該目錄下,執行pyinstaller -F exmple.py,看到如下資訊表示打包成功:
在專案目錄下發現多了dist和build兩個目錄和一個*.spec的檔案。
開啟dist目錄,可以發現下面多了一個example.exe的可執行檔案,雙擊執行發現並沒有顯示圖片,此時我們需要將logo.jpg拷貝到當前目錄下,然後再執行exe程式就可以看到如下結果
如果不想顯示控制檯打包的時候可以加上-w引數,pyinstaller -F -w example.py,此時打包生成的exe程式執行時不會出現控制檯視窗。
修改exe的圖示
預設使用的圖示如下
ico下載網址:https://www.easyicon.net/
pyinstaller -F -w -i=panda.ico example.py
通過-i引數可以指定ico的圖示,如果生成的exe的圖示沒有變化試著將ico圖示檔案拷貝到exe的相同目錄下。
pyInstaller 一般安裝在python安裝路徑/Script下面
pyinstaller -F xxx.py 打包exe命令,但是會有黑視窗
pyinstaller -F -w xxx.py去除黑視窗