Python3打包生成EXE可執(zhí)行程序

Python是解釋性語(yǔ)言,一般在編碼和運(yùn)行的時(shí)候也都是直接在Python開(kāi)發(fā)環(huán)境下運(yùn)行,使用Pyinstaller這個(gè)類庫(kù)來(lái)打包Windows系統(tǒng)下的可執(zhí)行程序,需要用到如下的一些參數(shù):

ü-F表示生成單個(gè)可執(zhí)行文件

ü-w表示去掉控制臺(tái)窗口,這在GUI界面時(shí)非常有用。不過(guò)如果是命令行程序的話那就把這個(gè)選項(xiàng)刪除吧!

ü-p表示你自己自定義需要加載的類路徑,一般情況下用不到

ü-i表示可執(zhí)行文件的圖標(biāo)

說(shuō)起來(lái),這個(gè)Python程序除了可以打包成Windows下的可執(zhí)行程序外,也可以打包成蘋(píng)果電腦上的可執(zhí)行程序(使用py2app類庫(kù)),或者在外面加個(gè)殼打包成手機(jī)APP(各種手機(jī)操作系統(tǒng)平臺(tái)的,例如使用Kivy框架開(kāi)發(fā)Andriod手機(jī)應(yīng)用),Python跨平臺(tái)的這個(gè)屬性很棒,一次開(kāi)發(fā),打包成不同操作平臺(tái)上運(yùn)行的應(yīng)用軟件,這是Python的優(yōu)點(diǎn)之一。

2常用的python打包工具有py2exe以及pyinstaller。

py2exe操作起來(lái)沒(méi)有pyinstaller方便,需要提前編寫(xiě)一個(gè)setup.py文件,而且在多版本支持方面也沒(méi)有pyinstaller做的好,個(gè)人傾向于選擇pyinstaller。

安裝

pyinstaller是一個(gè)python開(kāi)發(fā)的包,支持多種安裝方式,小編在這里推薦使用pip命令來(lái)安裝。因?yàn)閜yinstaller這個(gè)包依賴于pywin32,使用pip方式來(lái)安裝可以在安裝過(guò)程中將這個(gè)包一并安裝好。

命令行安裝:pip install pyinstaller

編寫(xiě)python程序

使用pyinstaller打包

在命令行執(zhí)行pyinstaller命令即可自動(dòng)化打包

命令行打包:pyinstaller hello.py

如果程序有多個(gè)模塊文件,那么pyinstaller命令只需要對(duì)程序入口文件打包即可,pyinstaller會(huì)去找入口文件中所引用的依賴模塊

查看打包結(jié)果

不帶任何參數(shù)的命令執(zhí)行完后,會(huì)在當(dāng)前目錄下生成build目錄,dist目錄以及spec文件(如下圖),并將程序打包成一個(gè)以程序文件名命名的目錄(包含可執(zhí)行文件及其他依賴文件),保存到dist目錄下

如果打包的程序沒(méi)有窗口界面,則生成的exe程序會(huì)以命令行窗口的形式運(yùn)行,程序運(yùn)行完會(huì)自動(dòng)退出,所以在測(cè)試階段建議在命令行窗口中執(zhí)行exe程序,以便查看程序的打印信息。

常用參數(shù)說(shuō)明

-F將程序打包成一個(gè)單獨(dú)的exe文件而不是包含很多文件的目錄

-wpyinstaller生成的exe文件是從命令行開(kāi)始執(zhí)行的,對(duì)于GUI程序(如Tkinter開(kāi)發(fā)的桌面程序),加上-w參數(shù)后,exe程序執(zhí)行后就不會(huì)顯示命令行窗口

-i如果想為exe文件生成一個(gè)自定義圖標(biāo),可以使用-i參數(shù),后面跟上ico文件名

e.g. pyinstaller -i icon.ico hello.py

--add-data添加程序需要引用的外部文件

e.g. pyinstaller --add-data config;. hello.py

更多參數(shù)的使用方法可以閱讀詳細(xì)文檔

https://pyinstaller.readthedocs.io/en/v3.3.1/usage.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • GitHub 上有一個(gè) Awesome - XXX 系列的資源整理,資源非常豐富,涉及面非常廣。awesome-p...
    若與閱讀 19,300評(píng)論 4 417
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,741評(píng)論 25 709
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,823評(píng)論 6 427
  • 那一年初來(lái)乍到 2014年新媒體運(yùn)營(yíng)風(fēng)靡大江南北,企業(yè)都在開(kāi)微信號(hào)吸粉,早期的自媒體人也搶得了先機(jī),個(gè)人號(hào)運(yùn)營(yíng)的風(fēng)...
    初之閱讀 7,095評(píng)論 17 6
  • 文明的推進(jìn)就是讓弱勢(shì)的一方也能享有該享的權(quán)利,坐下來(lái)談判,制定雙方認(rèn)可的規(guī)則,妥協(xié)、尋找中間地帶也是解決方式,單純...
    牛牛牛牛牛魔王閱讀 275評(píng)論 1 17

友情鏈接更多精彩內(nèi)容