pyinstaller打包PyQt程序 + 制作安装包

本文详细介绍了如何使用PyInstaller打包PyQt5程序,制作安装文件。内容包括选择工具、打包可执行文件、压缩文件、减小文件体积以及利用Inno Setup创建安装程序的过程,旨在帮助开发者实现程序的发布和安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打包发布PyQt5程序,制作安装文件。以自己的密码管理器为例 ~

用到的工具:
  • 平台: Windows10
  • python 3.7.6(安装好所需的包)
  • pyinstaller
  • upx(可选,用于压缩可执行文件)
  • Inno Setup 6
打包可执行文件:

先安装pyinstaller

pip install pyinstaller

打包时最好切换到主程序脚本所在的目录下,不然会出现import路径问题。例如我的是D:\PasswordManager,主程序所在文件main.py。启动pyinstaller

# 多文件
pyinstaller -D main.py
# 单个可执行文件
pyinstaller -F main.py

在当前目录下dist文件夹里就是打包好的可执行程序。这个时候运行会出现一个控制台,如果出现错误会在控制台中打印出来,可以用于测试;如果测试没问题就可以去掉控制台窗口(使用-w命令):

pyinstaller -D -w main.py

给可执行文件添加图标

### 替代 PyInstaller打包工具 对于 PyQt 项目而言,除了广为人知的 PyInstaller 工具外,还有多种替代方案可用于创建独立的应用程序包。 #### cx_Freeze cx_Freeze 是一种用于将 Python 脚本转换可执行文件的工具。该工具支持多个平台,并能够很好地处理依赖关系,包括像 PyQt 这样的图形界面库。通过配置 setup.py 文件来指定要冻结的应用程序及其参数[^1]。 ```python from setuptools import setup import sys base = None if sys.platform == "win32": base = "Win32GUI" setup( name="MyApp", version="0.1", description="Sample Application", options={"build_exe": {"packages":["PyQt5"]}}, executables=[Executable("myapp.py", base=base)] ) ``` #### py2exe py2exe 可以把 Python 程序连同所需的解释器一起编译为 Windows 下运行的 exe 文件。它特别适合于那些希望发布仅限于 Microsoft Windows 平台上的应用程序开发者使用。需要注意的是,在设置过程中可能需要额外调整以确保所有必要的资源都被正确包含进来[^2]。 ```xml <?xml version='1.0' encoding='utf-8'?> <project> <data_files> <!-- Add your data files here --> </data_files> <windows> <module>main</module> <icon>icons/app.ico</icon> </windows> <options> <includes>PyQt5.QtWidgets,sys</includes> <excludes></excludes> <packages>numpy.distutils;numpy.f2py</packages> </options> </project> ``` #### Briefcase Briefcase 是由 BeeWare 提供的一个命令行实用程序,旨在简化跨平台桌面应用开发流程中的最后一步——即构建原生安装包的过程。此方法不仅适用于 PyQt 应用,而且也兼容其他框架和技术栈。借助 briefcase 创建 macOS、Linux 或者 Windows 上的标准分发格式变得轻而易举。 ```bash briefcase new cd my-new-app pip install -r requirements.txt briefcase build briefcase publish ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值