使用Py2Exe for Python3建立自己的exe程式
最近使用Python 3.5寫了一個GUI小程式,於是想將該寫好的程式釋出成一個exe檔案,供自己單獨使用。至於通過安裝的方式使用該程式,我沒有探索,感興趣的讀者可以自己摸索。
1 介紹
我使用的開發環境是python3.4(實際上我是在另一個64位的桌上型電腦上,用python3.5開發的,不過程式碼不用任何修改即可在python3.4上執行),該環境由Anaconda提供。我開發的小GUI軟體為mergeDocGui,該程式功能完備,除錯通過,等待轉成直接使用的exe程式,以在Windows作業系統下使用。它所提供的功能也是與Windows作業系統緊密聯絡在一起的。
1.1 Py2Exe介紹及其安裝
py2exe for Python3 是一個distutils擴充套件,可以用來建立python3程式的Windows下的可執行程式(32-bit 和 64-bit);它只能支援Python3.3及以後的版本。用它可以建立命令列下的可執行程式、Windows GUI可執行程式、Windows服務和DLL/EXE COM伺服器等。
由於Python3的C執行時庫,使得我們在利用Py2Exe建立Python3的可執行程式時,不用寫manifest檔案。
我發現使用Py2Exe正好符合需求。
軟體mergeDocGui是在Python3環境下編寫的,因此只能安裝針對Python3的Py2Exe。Anaconda套件預設沒有安裝Py2Exe
安裝成功後,你可使用如下命令,看是否安裝成功:
2 建立exe方法
除了常用的建立setup.py方法外,Py2Exe還提供了一個命令列下的工具build_exe
,讓你不費力地直接建立exe檔案。
因為我的程式主要為一個mergeDocGui.py
檔案,所有使用build_exe
即可。根據Py2Exe for Python3提供的build_exe使用幫助,或者你自己通過命令build_exe -h
檢視幫助,我使用如下命令建立自己的exe檔案:
當然,首先要保證Python程式在當前資料夾中。在上圖中我們可以看出建立exe檔案失敗。選項-b
我們發現建立成功。立刻在當前資料夾下找到dist資料夾,裡面內容如下:
我亟不可待的執行
mergeDocGui.exe
程式,發現一個不太好的地方,就是總是會帶出來一個console背景,如下: 為了解決上述問題,我參閱了py2exe 0.9.2.0的幫助文件。我採用了通常的先編寫setup.py指令碼的方法:
from distutils.core import setup
import py2exe
setup(windows=['mergeDocGui.py'])
然後再在當前目錄下輸入一下命令:
最後,我開啟dist資料夾中的mergeDocGui.exe
,發現附帶的console視窗已經消失了。
至於通過build_exe
命令如何讓console視窗消失,等我閒暇的時候再來探索。
3 總結
本文談論了py2Exe在python3環境中的安裝方法,和如何將自己編寫的Gui程式(通過tkinter)轉換成可在Windows環境下執行的exe程式。這為非程式設計師使用程式提供極大的便利。至於程式設計師,由於是程式設計師嗎,直接面向程式碼就可以了。