python將多個py文件和其他文件打包為exe可執(zhí)行文件
前言:
最近在學(xué)習(xí)PYQT5,感覺還挺有趣的,順便記錄一下自己的打包記錄,也就當(dāng)學(xué)習(xí)筆記啦,如果剛好也在學(xué)習(xí)python打包的小伙伴可以學(xué)一學(xué)哦。
1、準(zhǔn)備好打包文件
首先準(zhǔn)備好將要打包的工程文件(/夾)。在這個文件下,我們將frame_main.py當(dāng)做主程序。
2、下載安裝Pyinstaller
在 cmd 中進(jìn)入我們當(dāng)前的python環(huán)境中,并進(jìn)入當(dāng)前項目的文件夾下:
下載安裝Pyinstaller
3、生成.spec文件
.spec文件為安裝配置文件,作用是對可執(zhí)行文件進(jìn)行配置!因為我們把frame_main.py 當(dāng)做主程序,所以輸入如下命令
pyi-makespec frame_main.py
可以看到此時文件夾下生成了一個 frame_main.spec 文件,其內(nèi)容如下:
# -*- mode: python ; coding: utf-8 -*- block_cipher =?None a = Analysis(['frame_main.py'], ?????????????pathex=[], ?????????????binaries=[], ?????????????datas=[], ?????????????hiddenimports=[], ?????????????hookspath=[], ?????????????hooksconfig={}, ?????????????runtime_hooks=[], ?????????????excludes=[], ?????????????win_no_prefer_redirects=False, ?????????????win_private_assemblies=False, ?????????????cipher=block_cipher, ?????????????noarchive=False) pyz = PYZ(a.pure, a.zipped_data, ?????????????cipher=block_cipher) exe = EXE(pyz, ??????????a.scripts, ??????????[], ??????????exclude_binaries=True, ??????????name='frame_main', ??????????debug=False, ??????????bootloader_ignore_signals=False, ??????????strip=False, ??????????upx=True, ??????????console=True, ??????????disable_windowed_traceback=False, ??????????target_arch=None, ??????????codesign_identity=None, ??????????entitlements_file=None?) coll = COLLECT(exe, ???????????????a.binaries, ???????????????a.zipfiles, ???????????????a.datas, ???????????????strip=False, ???????????????upx=True, ???????????????upx_exclude=[], ???????????????name='frame_main')
4、配置.spec文件
我們需要對其進(jìn)行配置,包括文件和靜態(tài)資源(圖片等),
在Analysis 加入所有py文件,datas中加入所有靜態(tài)資源。還有exe文件的圖標(biāo),記住圖標(biāo)用絕對路徑。
5、生成exe文件
輸入命令:
pyinstaller?-F?-w?frame_main.spec
(備注:-F是將一個文件打包而成的,-w是運(yùn)行時不出現(xiàn)黑色窗口的)
打包完成之后會在當(dāng)前目錄文件夾下生成一個dist文件夾,打開之后會發(fā)現(xiàn)我們的 exe 文件。
雙擊 exe 文件,竟然會發(fā)現(xiàn)怎么還是會出現(xiàn)黑色窗口呢,也就是控制臺。
經(jīng)過我?guī)煹艿狞c撥,終于發(fā)現(xiàn)了問題的所在,將spec文件中的 :
console =?True 改為: console =?False
繼續(xù)運(yùn)行,再次打包。
pyinstaller?-F?-w?frame_main.spec
雙擊 exe 文件
這樣就不會出現(xiàn)黑框啦.....
到此這篇關(guān)于python將多個py文件和其他文件打包為exe可執(zhí)行文件的文章就介紹到這了,更多相關(guān)python 文件打包 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Numpy中array數(shù)組對象的儲存方式(n,1)和(n,)的區(qū)別
本文主要介紹了Numpy中array數(shù)組對象的儲存方式(n,1)和(n,)的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Python中數(shù)組,列表:冒號的靈活用法介紹(np數(shù)組,列表倒序)
下面小編就為大家分享一篇Python中數(shù)組,列表:冒號的靈活用法介紹(np數(shù)組,列表倒序),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04python機(jī)器學(xué)習(xí)基礎(chǔ)線性回歸與嶺回歸算法詳解
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)基礎(chǔ)線性回歸與嶺回歸算法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11pyspark給dataframe增加新的一列的實現(xiàn)示例
這篇文章主要介紹了pyspark給dataframe增加新的一列的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Python+Pygame實現(xiàn)之走四棋兒游戲的實現(xiàn)
大家以前應(yīng)該都聽說過一個游戲:叫做走四棋兒。直接在家里的水泥地上用燒完的炭火灰畫出幾條線,擺上幾顆石頭子即可。當(dāng)時的火爆程度可謂是達(dá)到了一個新的高度。本文將利用Pygame實現(xiàn)這一游戲,需要的可以參考一下2022-07-07