網(wǎng)站首頁 編程語言 正文
python將多個(gè)py文件和其他文件打包為exe可執(zhí)行文件_python
作者:??Python編程學(xué)習(xí)圈???? ? 更新時(shí)間: 2022-07-27 編程語言前言:
最近在學(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文件為安裝配置文件,作用是對可執(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文件
我們需要對其進(jìn)行配置,包括文件和靜態(tài)資源(圖片等),
在Analysis?加入所有py文件,datas中加入所有靜態(tài)資源。還有exe文件的圖標(biāo),記住圖標(biāo)用絕對路徑。
5、生成exe文件
輸入命令:
pyinstaller?-F?-w?frame_main.spec
(備注:-F是將一個(gè)文件打包而成的,-w是運(yùn)行時(shí)不出現(xiàn)黑色窗口的)
打包完成之后會在當(dāng)前目錄文件夾下生成一個(gè)dist文件夾,打開之后會發(fā)現(xiàn)我們的?exe?文件。
雙擊?exe?文件,竟然會發(fā)現(xiàn)怎么還是會出現(xiàn)黑色窗口呢,也就是控制臺。
經(jīng)過我?guī)煹艿狞c(diǎn)撥,終于發(fā)現(xiàn)了問題的所在,將spec文件中的?:
console =?True
改為:
console =?False
繼續(xù)運(yùn)行,再次打包。
pyinstaller?-F?-w?frame_main.spec
雙擊?exe?文件
這樣就不會出現(xiàn)黑框啦.....
原文鏈接:https://juejin.cn/post/7099632026827833352
相關(guān)推薦
- 2022-03-31 聊聊Python?String型列表求最值的問題_python
- 2022-07-21 CentOS 網(wǎng)絡(luò)設(shè)置修改
- 2021-12-16 jquery+swiper組件實(shí)現(xiàn)時(shí)間軸滑動年份tab切換效果_jquery
- 2022-10-02 iOS簡單抽屜效果的實(shí)現(xiàn)方法_IOS
- 2022-06-07 nlp計(jì)數(shù)法應(yīng)用于PTB數(shù)據(jù)集示例詳解_python
- 2022-09-06 python?共現(xiàn)矩陣的實(shí)現(xiàn)代碼_python
- 2022-05-12 HarmonyOS 頁面跳轉(zhuǎn)
- 2022-12-10 jquery異常問題Uncaught?TypeError:?$(...).on?is?not?a?f
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支