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ī)煹艿狞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)文章
python各類經(jīng)緯度轉(zhuǎn)換的實(shí)例代碼
這篇文章主要介紹了python各類經(jīng)緯度轉(zhuǎn)換的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
Python中使用haystack實(shí)現(xiàn)django全文檢索搜索引擎功能
django是python語言的一個(gè)web框架,功能強(qiáng)大。配合一些插件可為web網(wǎng)站很方便地添加搜索功能。下面通過本文給大家分享Python中使用haystack實(shí)現(xiàn)django全文檢索搜索引擎功能,感興趣的朋友一起看看吧2017-08-08
Python編程使用*解包和itertools.product()求笛卡爾積的方法
這篇文章主要介紹了Python編程使用*解包和itertools.product()求笛卡爾積的方法,涉及Python列表轉(zhuǎn)換及itertools.product()求笛卡爾積相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
詳解Python網(wǎng)絡(luò)爬蟲功能的基本寫法
這篇文章主要介紹了Python網(wǎng)絡(luò)爬蟲功能的基本寫法,網(wǎng)絡(luò)爬蟲,即Web Spider,是一個(gè)很形象的名字。把互聯(lián)網(wǎng)比喻成一個(gè)蜘蛛網(wǎng),那么Spider就是在網(wǎng)上爬來爬去的蜘蛛,對(duì)網(wǎng)絡(luò)爬蟲感興趣的朋友可以參考本文2016-01-01
python 實(shí)現(xiàn)客戶端與服務(wù)端的通信
這篇文章主要介紹了python 實(shí)現(xiàn)客戶端與服務(wù)端的通信的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12

