【pyinstaller】python应用程序在win10打包qt5相关程序成exe
创始人
2024-06-03 10:25:36
0

目录

  • PyInstaller简介
  • 安装PyInstaller及qt相关库
  • .spec文件简介
  • 生成及修改spec文件
  • 生成应用程序

PyInstaller简介

PyInstaller是一个用于将Python程序打包为可执行文件的工具。它可以将Python程序打包为Windows、Linux、MacOS等平台的可执行文件,并且可以自动解决Python程序所需的依赖关系,使得打包后的可执行文件可以在没有Python环境的机器上运行。
PyInstaller的主要功能有:

将Python程序打包为可执行文件。

自动检测并打包Python程序所依赖的库和模块。

支持多平台,可以将Python程序打包为Windows、Linux、MacOS等平台的可执行文件。

支持各种Python版本,包括Python2和Python3。

支持多种打包方式,可以将Python程序打包为单个可执行文件、发布包、安装包等。
在Windows下,使用PyInstaller将Python程序打包为exe的步骤如下:

安装PyInstaller及qt相关库

可以使用pip命令安装PyInstaller,打开命令行窗口,输入以下命令:

pip install pyinstaller

安装qt相关部件的代码:

pip install sip
pip install PyQt5 -i https://pypi.douban.com/simple
pip install PyQt5-tools -i https://pypi.douban.com/simpledu.cn/simple

最终版本如下:
1537 INFO: PyInstaller: 5.9.0
1538 INFO: Python: 3.9.0 (conda)
1540 INFO: Platform: Windows-10-10.0.19041-SP0

如果之前误删pip,可用下面的命令装回:

python -m ensurepip

.spec文件简介

PyInstaller生成的.spec文件是用于配置和定制打包过程的脚本文件。它包含了程序的打包信息,如程序的名称、版本、图标等信息,也包含了程序的依赖关系和打包方式等信息。
.spec文件可以手动编写,也可以通过命令行参数让PyInstaller自动生成。在生成.spec文件后,你可以手动编辑.spec文件来对打包过程进行更加详细的配置和定制,例如添加自定义的Python模块、设置程序的图标、指定程序的运行方式等。
使用.spec文件进行打包可以提高打包的灵活性和精度。你可以根据自己的需求对打包过程进行完全的控制,从而生成更加符合你需求的可执行文件。
切换至装有main.py文件的目录:

生成及修改spec文件

用命令pyi-makespec生成spec文件,当程序由多个.py文件组成,故pyi-makespec后跟的是入口py文件:

pyi-makespec main.py 

生成test.spec文件

注:如果想将程序的所有内容保存进一个exe文件,则使用命令:

pyi-makespec -F main.py 

生成test.spec文件。

main.spec文件内容如下:

# -*- mode: python ; coding: utf-8 -*-block_cipher = Nonea = Analysis(['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='main',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=True,disable_windowed_traceback=False,argv_emulation=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='main',
)

将其中的:

a = Analysis(['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,
)

更改为:
其中出现的项目py文件所在路径,需要做\斜杠转义:

a = Analysis(['main.py','demomain.py','image_rc.py','sleepAndLeave.py'],pathex=["C:\\Users\\104005066\\AlgorithmDemo"],binaries=[],datas=[],hiddenimports=[],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False,
)

同时将:

exe = EXE(pyz,a.scripts,[],exclude_binaries=True,name='main',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=False,disable_windowed_traceback=False,argv_emulation=False,target_arch=None,codesign_identity=None,entitlements_file=None,
)

中的 console=改为false。避免弹出黑色的命令行。

生成应用程序

spec文件配置好后,每次修改代码只需执行如下编译命令即可完成上述步骤:

pyinstaller main.spec

生成程序。

注意,如果使用anaconda环境,应把pyinstaller和pyqt装在一个环境内,以免发生找不到包的错误。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...