使用Py2Exe for Python3創(chuàng)建自己的exe程序示例
最近使用Python 3.5寫了一個(gè)GUI小程序,于是想將該寫好的程序發(fā)布成一個(gè)exe文件,供自己?jiǎn)为?dú)使用。至于通過安裝的方式使用該程序,我沒有探索,感興趣的讀者可以自己摸索。
1 介紹
我使用的開發(fā)環(huán)境是python3.4(實(shí)際上我是在另一個(gè)64位的臺(tái)式機(jī)上,用python3.5開發(fā)的,不過代碼不用任何修改即可在python3.4上運(yùn)行),該環(huán)境由Anaconda提供。我開發(fā)的小GUI軟件為mergeDocGui,該程序功能完備,調(diào)試通過,等待轉(zhuǎn)成直接使用的exe程序,以在Windows操作系統(tǒng)下使用。它所提供的功能也是與Windows操作系統(tǒng)緊密聯(lián)系在一起的。
1.1 Py2Exe介紹及其安裝
py2exe for Python3 是一個(gè)distutils擴(kuò)展,可以用來創(chuàng)建python3程序的Windows下的可執(zhí)行程序(32-bit 和 64-bit);它只能支持Python3.3及以后的版本。用它可以創(chuàng)建命令行下的可執(zhí)行程序、Windows GUI可執(zhí)行程序、Windows服務(wù)和DLL/EXE COM服務(wù)器等。
由于Python3的C運(yùn)行時(shí)庫,使得我們?cè)诶肞y2Exe創(chuàng)建Python3的可執(zhí)行程序時(shí),不用寫manifest文件。
我發(fā)現(xiàn)使用Py2Exe正好符合需求。
軟件mergeDocGui是在Python3環(huán)境下編寫的,因此只能安裝針對(duì)Python3的Py2Exe。Anaconda套件默認(rèn)沒有安裝Py2Exe,需要我們手動(dòng)安裝Py2Exe。在Anaconda環(huán)境中的Python3中安裝Py2Exe使用如下命令即可:

安裝成功后,你可使用如下命令,看是否安裝成功:

2 創(chuàng)建exe方法
除了常用的創(chuàng)建setup.py方法外,Py2Exe還提供了一個(gè)命令行下的工具build_exe,讓你不費(fèi)力地直接創(chuàng)建exe文件。
因?yàn)槲业某绦蛑饕獮橐粋€(gè)mergeDocGui.py文件,所有使用build_exe即可。根據(jù)Py2Exe for Python3提供的build_exe使用幫助,或者你自己通過命令build_exe -h查看幫助,我使用如下命令創(chuàng)建自己的exe文件:

當(dāng)然,首先要保證Python程序在當(dāng)前文件夾中。在上圖中我們可以看出創(chuàng)建exe文件失敗。選項(xiàng)-b表示bundle文件的級(jí)別,具體含義請(qǐng)參見幫助。失敗原因說的很清楚,需要最小的級(jí)別為2,于是我調(diào)整bundle文件的級(jí)別為2:

我們發(fā)現(xiàn)創(chuàng)建成功。立刻在當(dāng)前文件夾下找到dist文件夾,里面內(nèi)容如下:

我亟不可待的運(yùn)行mergeDocGui.exe程序,發(fā)現(xiàn)一個(gè)不太好的地方,就是總是會(huì)帶出來一個(gè)console背景,如下:

為了解決上述問題,我參閱了py2exe 0.9.2.0的幫助文檔。我采用了通常的先編寫setup.py腳本的方法:
from distutils.core import setup import py2exe setup(windows=['mergeDocGui.py'])
然后再在當(dāng)前目錄下輸入一下命令:

最后,我打開dist文件夾中的mergeDocGui.exe,發(fā)現(xiàn)附帶的console窗口已經(jīng)消失了。
至于通過build_exe命令如何讓console窗口消失,等我閑暇的時(shí)候再來探索。
3 總結(jié)
本文談?wù)摿藀y2Exe在python3環(huán)境中的安裝方法,和如何將自己編寫的Gui程序(通過tkinter)轉(zhuǎn)換成可在Windows環(huán)境下運(yùn)行的exe程序。這為非程序員使用程序提供極大的便利。至于程序員,由于是程序員嗎,直接面向代碼就可以了。
以上這篇使用Py2Exe for Python3創(chuàng)建自己的exe程序示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)文件分片上傳的接口自動(dòng)化
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)文件分片上傳的接口自動(dòng)化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
Python設(shè)計(jì)模式之模板方法模式實(shí)例詳解
這篇文章主要介紹了Python設(shè)計(jì)模式之模板方法模式,結(jié)合實(shí)例形式較為詳細(xì)的分析了模板方法模式的概念、原理及Python定義、使用模板方法模式相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
Python中單引號(hào)、雙引號(hào)和三引號(hào)具體的用法及注意點(diǎn)
這篇文章主要給大家介紹了關(guān)于Python中單引號(hào)、雙引號(hào)和三引號(hào)具體的用法及注意點(diǎn)的相關(guān)資料,Python中單引號(hào)、雙引號(hào)、三引號(hào)中使用常常困惑,想弄明白這三者相同點(diǎn)和不同點(diǎn),需要的朋友可以參考下2023-07-07
Python for循環(huán)與getitem的關(guān)系詳解
這篇文章主要介紹了Python for循環(huán)與getitem的關(guān)系詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Python實(shí)現(xiàn)對(duì)比兩個(gè)Excel數(shù)據(jù)內(nèi)容并標(biāo)記出不同
日常工作中需要對(duì)比兩個(gè)Excel工作表中的數(shù)據(jù)差異是很不方便的,使用python來做就比較簡(jiǎn)單了!本文為大家介紹了python實(shí)現(xiàn)對(duì)比兩個(gè)Excel的數(shù)據(jù)內(nèi)容并標(biāo)記出不同數(shù)據(jù)的示例代碼,需要的可以參考一下2022-12-12
Python編程實(shí)現(xiàn)控制cmd命令行顯示顏色的方法示例
這篇文章主要介紹了Python編程實(shí)現(xiàn)控制cmd命令行顯示顏色的方法,結(jié)合實(shí)例形式分析了Python針對(duì)命令行字符串顯示顏色屬性相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
python中opencv與PIL圖片讀取保存及相互轉(zhuǎn)化方式
這篇文章主要介紹了python中opencv與PIL圖片讀取保存及相互轉(zhuǎn)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
pymysql.err.DataError:1366的報(bào)錯(cuò)解決
通過python把數(shù)據(jù)同步至mysql數(shù)據(jù)庫的過程中,遇到錯(cuò)誤,本文主要介紹了pymysql.err.DataError:1366的報(bào)錯(cuò)解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
Python基礎(chǔ)之標(biāo)準(zhǔn)庫和常用的第三方庫案例教程
這篇文章主要介紹了Python基礎(chǔ)之標(biāo)準(zhǔn)庫和常用的第三方庫案例教程,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07

