1. 程式人生 > >使用Py2Exe for Python3建立自己的exe程式

使用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

,需要我們手動安裝Py2Exe。在Anaconda環境中的Python3中安裝Py2Exe使用如下命令即可:
Py2Exe安裝方法
安裝成功後,你可使用如下命令,看是否安裝成功:
檢視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

表示bundle檔案的級別,具體含義請參見幫助。失敗原因說的很清楚,需要最小的級別為2,於是我調整bundle檔案的級別為2:
這裡寫圖片描述
我們發現建立成功。立刻在當前資料夾下找到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程式。這為非程式設計師使用程式提供極大的便利。至於程式設計師,由於是程式設計師嗎,直接面向程式碼就可以了。