中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Py2Exe for Python3創建自己的exe程序示例

發布時間:2020-10-15 12:07:58 來源:腳本之家 閱讀:405 作者:阿智智 欄目:開發技術

最近使用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 for Python3創建自己的exe程序示例

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

使用Py2Exe for Python3創建自己的exe程序示例

2 創建exe方法

除了常用的創建setup.py方法外,Py2Exe還提供了一個命令行下的工具build_exe,讓你不費力地直接創建exe文件。

因為我的程序主要為一個mergeDocGui.py文件,所有使用build_exe即可。根據Py2Exe for Python3提供的build_exe使用幫助,或者你自己通過命令build_exe -h查看幫助,我使用如下命令創建自己的exe文件:

使用Py2Exe for Python3創建自己的exe程序示例

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

使用Py2Exe for Python3創建自己的exe程序示例

我們發現創建成功。立刻在當前文件夾下找到dist文件夾,里面內容如下:

使用Py2Exe for Python3創建自己的exe程序示例

我亟不可待的運行mergeDocGui.exe程序,發現一個不太好的地方,就是總是會帶出來一個console背景,如下:

使用Py2Exe for Python3創建自己的exe程序示例

為了解決上述問題,我參閱了py2exe 0.9.2.0的幫助文檔。我采用了通常的先編寫setup.py腳本的方法:

from distutils.core import setup
import py2exe

setup(windows=['mergeDocGui.py'])

然后再在當前目錄下輸入一下命令:

使用Py2Exe for Python3創建自己的exe程序示例

最后,我打開dist文件夾中的mergeDocGui.exe,發現附帶的console窗口已經消失了。

至于通過build_exe命令如何讓console窗口消失,等我閑暇的時候再來探索。

3 總結

本文談論了py2Exe在python3環境中的安裝方法,和如何將自己編寫的Gui程序(通過tkinter)轉換成可在Windows環境下運行的exe程序。這為非程序員使用程序提供極大的便利。至于程序員,由于是程序員嗎,直接面向代碼就可以了。

以上這篇使用Py2Exe for Python3創建自己的exe程序示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

徐州市| 玉门市| 万源市| 元谋县| 乐业县| 宣城市| 安国市| 衡东县| 屏东县| 青浦区| 东乡族自治县| 安远县| 独山县| 青田县| 天峨县| 镇赉县| 崇信县| 乐亭县| 龙游县| 宜昌市| 凯里市| 梁平县| 汕尾市| 长岛县| 广昌县| 额济纳旗| 神池县| 双江| 双峰县| 上饶县| 阿合奇县| 江川县| 靖宇县| 仲巴县| 义马市| 沭阳县| 呼图壁县| 建始县| 承德市| 巫溪县| 咸阳市|