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