赞
踩
InstallForge下载详细使用教程》》 http://t.csdn.cn/FYc3a
本教程也适用于 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 上)
构建基本应用
现在我们已经有了简单的应用程序框架,我们可以运行我们的第一个构建测试以确保一切正常。
打开终端(命令提示符)并导航到包含项目的文件夹。现在可以运行以下命令来运行 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。