【pyside6】qt打包成执行文件 详细说明,并解释遇到的问题

InstallForge下载详细使用教程》》 http://t.csdn.cn/FYc3a

将 PySide6 应用程序打包为 Windows 与 PyInstaller & InstallForge 将您的 PyQt6 应用程序转换为 Windows 的可分发安装程序

				本教程也适用于 PyQt6 和 PySide2。

如果您无法与其他人共享自己的桌面应用程序,那么创建自己的桌面应用程序就没有太多乐趣 - 无论是商业发布,在线共享还是只是将其提供给您认识的人。共享您的应用程序可以让其他人从您的辛勤工作中受益!

好消息是,有一些工具可以帮助您使用Python应用程序做到这一点,这些应用程序与使用PyQt6构建的应用程序配合良好。在本教程中,我们将介绍最流行的打包 Python 应用程序的工具:PyInstaller。

本教程分为一系列步骤,使用 PyInstaller 首先将简单,然后越来越复杂的 PySide6 应用程序构建为Windows上的可分发EXE文件。您可以选择完全遵循它,也可以跳到与您自己的项目最相关的示例。
最后,我们使用InstallForge创建一个可分发的Windows安装程序。

您始终需要在目标系统上编译应用程序。因此,如果您想创建Mac.app则需要在Mac上执行此操作,对于EXE,您需要使用Windows。

在这里插入图片描述
Example Installer for Windows 适用于 Windows 的示例安装程序

如果您不耐烦,可以先下载适用于 Windows 的示例安装程序。
https://downloads.pythonguis.com/DemoAppInstallforge.exe

PyInstaller开箱即用,与Qt for Python PySide6 一起使用,在撰写本文时,当前版本的PyInstaller与Python 3.6+兼容。无论你正在从事什么项目,你都应该能够打包你的应用。
您可以使用 pip 安装 PyInstaller。

pip3 install PyInstaller

如果您在打包应用程序时遇到问题,您的第一步应该始终是更新您的 PyInstaller,并使用 Hooks 打包最新版本

pip3 install --upgrade PyInstaller pyinstaller-hooks-contrib

hooks 模块包含特定于软件包的 PyInstaller 打包指令,这些指令会定期更新。

在虚拟环境中安装(可选)
您还可以选择在虚拟环境(或应用程序虚拟环境)中安装 PySide6 和 PyInstaller,以保持环境清洁。

python3 -m venv packenv

创建后,通过从命令行运行来激活虚拟环境

call packenv\scripts\activate.bat

最后,安装所需的库。

pip3 install PySide6 PyInstaller

开始


最好从一开始就开始打包应用程序,这样就可以确认打包在开发应用程序时仍在工作。如果添加其他依赖项,这一点尤其重要。如果最后只考虑打包,则可能很难准确调试问题所在。

在本例中,我们将从一个简单的骨架应用开始,它不做任何有趣的事情。一旦我们完成了基本的打包过程,我们将扩展应用程序以包含图标和数据文件。我们将在进行过程中确认构建。

首先,为应用程序创建一个新文件夹,然后在名为 app.py 的文件中添加以下主干应用。您还可以下载源代码和相关文件

from PySide6 import QtWidgets

import sys

class MainWindow(QtWidgets.QMainWindow):

    def __init__(self):
        super().__init__()

        self.setWindowTitle("Hello World")
        l = QtWidgets.QLabel("My simple app.")
        l.setMargin(10)
        self.setCentralWidget(l)
        self.show()

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = MainWindow()
    app.exec_()

这是一个基本的裸体应用程序,它创建自定义 QMainWindow 并向其添加一个简单的小部件 QLabel 。您可以按如下方式运行此应用。

python app.py

这应该会产生以下窗口(在 Windows 11 上)
PySide6 中的简单骨架应用程序

构建基本应用
现在我们已经有了简单的应用程序框架,我们可以运行我们的第一个构建测试以确保一切正常。

打开终端(命令提示符)并导航到包含项目的文件夹。现在可以运行以下命令来运行 PyInstaller 内部版本。

pyinstaller app.py

您将看到许多消息输出,提供有关 PyInstaller 正在执行的操作的调试信息。这些对于调试生成中的问题很有用,但可以忽略。我在 Windows 11 上运行命令获得的输出如下所示。

C:\Users\Gebruiker\pyinstaller\pyside6>pyinstaller app.py
235 INFO: PyInstaller: 4.7
235 INFO: Python: 3.7.6
237 INFO: Platform: Windows-10-10.0.22000-SP0
238 INFO: wrote C:\Users\Gebruiker\pyinstaller\pyside6\app.spec
240 INFO: UPX is not available.
243 INFO: Extending PYTHONPATH with paths
['C:\\Users\\Gebruiker\\pyinstaller\\pyside6']
574 INFO: checking Analysis
574 INFO: Building Analysis because Analysis-00.toc is non existent
575 INFO: Initializing module dependency graph...
579 INFO: Caching module graph hooks...
590 INFO: Analyzing base_library.zip ...
4047 INFO: Caching module dependency graph...
4198 INFO: running Analysis Analysis-00.toc
4214 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by c:\users\gebruiker\appdata\local\programs\python\python37\python.exe
4433 INFO: Analyzing C:\Users\Gebruiker\pyinstaller\pyside6\app.py
4600 INFO: Processing module hooks...
4601 INFO: Loading module hook 'hook-difflib.py' from 'c:\\users\\gebruiker\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\PyInstaller\\hooks'...
4602 INFO: Loading module hook 'hook-encodings.py' from 'c:\\users\\gebruiker\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\PyInstaller\\hooks'...
4667 INFO: Loading module hook 'hook-heapq.py' from 'c:\\users\\gebruiker\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\PyInstaller\\hooks'...
4668 INFO: Loading module hook 'hook-pickle.py' from 'c:\\users\\gebruiker\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\PyInstaller\\hooks'...
4669 INFO: Loading module hook 'hook-PySide6.py' from 'c:\\users\\gebruiker\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\PyInstaller\\hooks'...
5083 INFO: Loading module hook 'hook-PySide6.QtNetwork.py' from 'c:\\users\\gebruiker\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\PyInstaller\\hooks'...
5558 INFO: Loading module hook 'hook-PySide6.QtWidgets.py' from 'c:\\users\\gebruiker\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\PyInstaller\\hooks'...
5782 INFO: Loading module hook 'hook-xml.py' from 'c:\\users\\gebruiker\\appdata\\local\\programs
  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jcs ssc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值