
本文共 2552 字,大约阅读时间需要 8 分钟。
PyInstaller打包PyQt5应用程序示例
PyInstaller是一款强大的 Python 打包工具,其设计初衷是将 Python 软件包装成像平台本地可执行文件(如.exe)一样的格式。在本文中,我们将逐步学习如何使用 PyInstaller 打包基于 PyQt5 的 Python 应用程序,并在过程中解决一些常见问题。
一、基础知识
1. PyInstaller 简介
PyInstaller 的主要目标是提供开箱即用地与第三方软件包兼容的解决方案。这意味着通过PyInstaller打包,您无需手动干预,外部依赖也能正常运行。与其他打包工具相比,PyInstaller 的优势体现在其支持多平台、透明压缩以及兼容性强的特点。
2. PyInstaller 安装
安装 PyInstaller 命令如下:
pip3 install pyinstaller
在安装前,请确保您的 Python 版本为 3.5.0 到 3.7.x。建议使用与本文一致的 Python 3.7.6版本,以确保兼容性。
二、实例
1. 打开第一节1-setup代码
为了开始我们的探索,请首先打开包含以下内容的 run.py
文件:
from PyQt5.QtWidgets import (QWidget, QLabel, QPushButton, QMainWindow)from PyQt5.QtCore import Qtfrom PyQt5.QtMultimedia import QSoundfrom PyQt5.QtWebKit import(QWebView, QWebChannel)import sysclass MainWindow(QMainWindow): def __init__(self): super().__init__() self.setGeometry(100, 100, 300, 200) self.setWindowTitle("Hello世界") self.create_ui() def create_ui(self): self.view = QWebView() self.view.setGeometry(self.geometry()) self.view.load("qrc:///qrc/main.qml") self.btn = QPushButton("播放音效") self.btn.clicked.connect(self.play_sound) self.btn.move(200, 80) def play_sound(self): sound = QSound("qrc:///qrc/sound/audio.mp3") sound.play()if __name__ == "__main__": app = QMainWindow() app.showMaximized() app.setCentralWidget(QWidget()) widget = MainWindow() widget.setupUi() app.exec_()
运行 run.py
文件:
python3 run.py
根据图片描述,您应看到一个带有标题 "Hello世界" 的窗口,并且界面上应该有一个播放音效的按钮。
2. 给 sys 注入冻结变量
在某些情况下,特别是在 Windows 系统上,PyInstaller 会将一个名为 frozen
的变量注入到 sys
模块中。这可以帮助我们处理一些与打包相关的问题。
import sys, osif hasattr(sys, "frozen"): os.environ['PATH'] = sys._MEIPASS + ";" + os.environ.get('PATH')
将上述代码添加到您的入口文件的开头位置即可。
3. 打包成一个带调试窗口的 exe
在命令行中输入:
pyinstaller -F run.py
这一步会在当前目录下的 dist
文件夹中生成名为 run.exe
的可执行文件。双击这个文件,可以看到一个类似 CMD 窗口的黑色背景框。您可以在其中看到 print
等调试信息。
保留图片描述的图片,您可以看到打包后的 exe 文件及其对应的调试窗口。
4. 打包成一个不带调试窗口的 exe
如果需要移除调试窗口,可以在打包时添加以下选项:
pyinstaller -F -w run.py
同样会在 dist
文件夹中生成 run.exe
文件,双击运行时不会再显示调试窗口。
5. 打包成带图标的 exe
为了给您的 exe 文件添加自定义图标,请完成以下步骤:
icons
文件夹,放入 icon.ico
文件。pyinstaller -F -w run.py -i D:/路径/你的图标.ico
这样生成的 run.exe
文件会带有您自定义的图标。将文件拖到桌面上,您应该可以看到更新后的图标。
三、结语
调试:如果打包后的程序仍无法运行,请尝试在CMD命令窗口下直接运行。如果运行失败,可以查看控制台提示信息。例如:
cd distrun.exe
获取资料:遇到问题时,请查阅 PyInstaller 官方文档或相关社区。例如,Py INSTALLER GitHub仓库:
https://github.com/pyinstaller/pyinstaller
项目实战:如需进一步探索,请关注我们的公众号 "物联网客栈",输入 "pyqt5" 进行订阅。
希望以上内容能帮助您顺利打包基于 PyQt5 的 Python 应用程序!如有任何疑问,可以加入我们的 QQ 群:906015840 (备注:物联网项目交流)。
发表评论
最新留言
关于作者
