Python PyInstaller安裝和使用教程詳解
Pyinstaller這個(gè)庫(kù)是我用pip下載的第一個(gè)模塊。接下來(lái)通過(guò)本文給大家分享Python PyInstaller安裝和使用教程,一起看看吧。
安裝 PyInstalle
Python 默認(rèn)并不包含 PyInstaller 模塊,因此需要自行安裝 PyInstaller 模塊。
安裝 PyInstaller 模塊與安裝其他 Python 模塊一樣,使用 pip 命令安裝即可。在命令行輸入如下命令:
pip install pyinstaller
強(qiáng)烈建議使用 pip 在線安裝的方式來(lái)安裝 PyInstaller 模塊,不要使用離線包的方式來(lái)安裝,因?yàn)?PyInstaller 模塊還依賴(lài)其他模塊,pip 在安裝 PyInstaller 模塊時(shí)會(huì)先安裝它的依賴(lài)模塊。
運(yùn)行上面命令,應(yīng)該看到如下輸出結(jié)果:
Successfully installed pyinstaller-x.x.x
其中的 x.x.x 代表 PyInstaller 的版本。
在 PyInstaller 模塊安裝成功之后,在 Python 的安裝目錄下的 Scripts(D:\Python\Python36\Scripts)
目錄下會(huì)增加一個(gè) pyinstaller.exe 程序,接下來(lái)就可以使用該工具將 Python 程序生成 EXE 程序了。
PyInstaller生成可執(zhí)行程序
PyInstaller 工具的命令語(yǔ)法如下:
pyinstaller 選項(xiàng) Python 源文件
不管這個(gè) Python 應(yīng)用是單文件的應(yīng)用,還是多文件的應(yīng)用,只要在使用 pyinstaller 命令時(shí)編譯作為程序入口的 Python 程序即可。
PyInstaller工具是跨平臺(tái)的,它既可以在 Windows平臺(tái)上使用,也可以在 Mac OS X 平臺(tái)上運(yùn)行。在不同的平臺(tái)上使用 PyInstaller 工具的方法是一樣的,它們支持的選項(xiàng)也是一樣的。
下面先創(chuàng)建一個(gè) app 目錄,在該目錄下創(chuàng)建一個(gè) app.py 文件,文件中包含如下代碼:
from say_hello import * def main(): print('程序開(kāi)始執(zhí)行') print(say_hello('孫悟空')) # 增加調(diào)用main()函數(shù) if __name__ == '__main__': main()
接下來(lái)使用命令行工具進(jìn)入到此 app 目錄下,執(zhí)行如下命令:
pyinstaller -F app.py
執(zhí)行上面命令,將看到詳細(xì)的生成過(guò)程。當(dāng)生成完成后,將會(huì)在此 app 目錄下看到多了一個(gè) dist 目錄,并在該目錄下看到有一個(gè) app.exe 文件,這就是使用 PyInstaller 工具生成的 EXE 程序。
在命令行窗口中進(jìn)入 dist 目錄下,在該目錄執(zhí)行 app.exe ,將會(huì)看到該程序生成如下輸出結(jié)果:
程序開(kāi)始執(zhí)行孫悟空,您好!
由于該程序沒(méi)有圖形用戶(hù)界面,因此如果讀者試圖通過(guò)雙擊來(lái)運(yùn)行該程序,則只能看到程序窗口一閃就消失了,這樣將無(wú)法看到該程序的輸出結(jié)果。
在上面命令中使用了-F 選項(xiàng),該選項(xiàng)指定生成單獨(dú)的 EXE 文件,因此,在 dist 目錄下生成了一個(gè)單獨(dú)的大約為 6MB 的 app.exe 文件(在 Mac OS X 平臺(tái)上生成的文件就叫 app,沒(méi)有后綴);與 -F 選項(xiàng)對(duì)應(yīng)的是 -D 選項(xiàng)(默認(rèn)選項(xiàng)),該選項(xiàng)指定生成一個(gè)目錄(包含多個(gè)文件)來(lái)作為程序。
下面先將 PyInstaller 工具在 app 目錄下生成的 build、dist 目錄刪除,并將 app.spec 文件也刪除,然后使用如下命令來(lái)生成 EXE 文件。
pyinstaller -D app.py
執(zhí)行上面命令,將看到詳細(xì)的生成過(guò)程。當(dāng)生成完成后,將會(huì)在 app 目錄下看到多了一個(gè) dist 目錄,并在該目錄下看到有一個(gè) app 子目錄,在該子目錄下包含了大量 .dll 文件和 .pyz 文件,它們都是 app.exe 程序的支撐文件。在命令行窗口中運(yùn)行該 app.exe 程序,同樣可以看到與前一個(gè) app.exe 程序相同的輸出結(jié)果。
PyInstaller 不僅支持 -F、-D 選項(xiàng),而且也支持如表 1 所示的常用選項(xiàng)。
-h,--help | 查看該模塊的幫助信息 |
---|---|
-F,-onefile | 產(chǎn)生單個(gè)的可執(zhí)行文件 |
-D,--onedir | 產(chǎn)生一個(gè)目錄(包含多個(gè)文件)作為可執(zhí)行程序 |
-a,--ascii | 不包含 Unicode 字符集支持 |
-d,--debug | 產(chǎn)生 debug 版本的可執(zhí)行文件 |
-w,--windowed,--noconsolc | 指定程序運(yùn)行時(shí)不顯示命令行窗口(僅對(duì) Windows 有效) |
-c,--nowindowed,--console | 指定使用命令行窗口運(yùn)行程序(僅對(duì) Windows 有效) |
-o DIR,--out=DIR | 指定 spec 文件的生成目錄。如果沒(méi)有指定,則默認(rèn)使用當(dāng)前目錄來(lái)生成 spec 文件 |
-p DIR,--path=DIR | 設(shè)置 Python 導(dǎo)入模塊的路徑(和設(shè)置 PYTHONPATH 環(huán)境變量的作用相似)。也可使用路徑分隔符(Windows 使用分號(hào),Linux使用冒號(hào))來(lái)分隔多個(gè)路徑 |
-n NAME,--name=NAME | 指定項(xiàng)目(產(chǎn)生的 spec)名字。如果省略該選項(xiàng),那么第一個(gè)腳本的主文件名將作為 spec 的名字 |
在表 1 中列出的只是 PyInstaller 模塊所支持的常用選項(xiàng),如果需要了解 PyInstaller 選項(xiàng)的詳細(xì)信息,則可通過(guò) pyinstaller -h 來(lái)查看。
總結(jié)
以上所述是小編給大家介紹的Python PyInstaller安裝和使用教程詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Python使用pyecharts繪制世界地圖,省級(jí)地圖,城市地圖實(shí)例詳解
這篇文章主要介紹了如何使用Python中的pyecharts庫(kù)繪制世界地圖、中國(guó)地圖、省級(jí)地圖、市級(jí)地圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-02-02Python urlopen()和urlretrieve()用法解析
這篇文章主要介紹了Python urlopen()和urlretrieve()用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01使用pycharm在本地開(kāi)發(fā)并實(shí)時(shí)同步到服務(wù)器
這篇文章主要介紹了使用pycharm在本地開(kāi)發(fā)并實(shí)時(shí)同步到服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Python中用Ctrl+C終止多線程程序的問(wèn)題解決
花了一天時(shí)間用python為服務(wù)寫(xiě)了個(gè)壓力測(cè)試。很簡(jiǎn)單,多線程向服務(wù)器發(fā)請(qǐng)求。但寫(xiě)完之后發(fā)現(xiàn)如果中途想停下來(lái),按Ctrl+C達(dá)不到效果,自然想到要用信號(hào)處理函數(shù)捕捉信號(hào),使線程都停下來(lái),問(wèn)題解決的方法請(qǐng)往下看:2013-03-03python3將變量寫(xiě)入SQL語(yǔ)句的實(shí)現(xiàn)方式
這篇文章主要介紹了python3將變量寫(xiě)入SQL語(yǔ)句的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03python獲取微信小程序手機(jī)號(hào)并綁定遇到的坑
這篇文章主要介紹了python獲取微信小程序手機(jī)號(hào)并綁定遇到的坑,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-11-11python實(shí)現(xiàn)郵件自動(dòng)發(fā)送
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)郵件自動(dòng)發(fā)送,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08python使用requests實(shí)現(xiàn)發(fā)送帶文件請(qǐng)求功能
這篇文章主要介紹了python使用requests實(shí)現(xiàn)發(fā)送帶文件請(qǐng)求,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12