pyqt5快速上手基础篇12-使用Pyinstaller打包应用程序
发布日期:2021-05-15 00:02:34 浏览次数:17 分类:精选文章

本文共 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 Qt
from PyQt5.QtMultimedia import QSound
from PyQt5.QtWebKit import(QWebView, QWebChannel)
import sys
class 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, os
if 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 dist
    run.exe
  • 获取资料:遇到问题时,请查阅 PyInstaller 官方文档或相关社区。例如,Py INSTALLER GitHub仓库:

    https://github.com/pyinstaller/pyinstaller
  • 项目实战:如需进一步探索,请关注我们的公众号 "物联网客栈",输入 "pyqt5" 进行订阅。

  • 希望以上内容能帮助您顺利打包基于 PyQt5 的 Python 应用程序!如有任何疑问,可以加入我们的 QQ 群:906015840 (备注:物联网项目交流)。

    上一篇:腾讯云部署EMQX Broker
    下一篇:PyQt5快速上手基础篇11-表格形式显示统计数据在textBrowser上

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月19日 05时28分36秒