PyQt 跨平台安装程序构建器 [关闭]

Posted

技术标签:

【中文标题】PyQt 跨平台安装程序构建器 [关闭]【英文标题】:PyQt cross platform installer builder [closed] 【发布时间】:2014-06-06 21:09:30 【问题描述】:

这是我的第一个 PyQt 项目。我正处于为各种平台制作设置/安装程序构建器的阶段。你如何构建安装程序?就像一个向导,引导用户完成接受许可、选择其他选项等步骤,最后复制您的文件。

【问题讨论】:

【参考方案1】:

就像它在这个页面的中间提到的那样:

https://wiki.python.org/moin/DistributionUtilities

有时需要安装程序来打包冻结工具的输出 放入包中:

Inno 设置 (Windows) NSIS(Windows) MacPython BundleBuilder (Mac OS X)

我一直在为工作中的安装人员参与 NSIS,他们非常直接且易于使用。这主要用于 Windows 部署。

我用于 Mac 的另一个部署工具是 DMG Creator。但这主要是针对 C++ 项目而不是 python。 Mac 和 Linux 上几乎总是有一个 Python 版本,但您可能仍然希望您的 Python 版本可用。

希望对您有所帮助。

【讨论】:

从上面我开始意识到冻结工具和安装构建器之间存在差异。 Pyinstaller,py2exe 是冻结工具。刚刚测试过 Inno Setup,它看起来也很棒。非常感谢您的意见。【参考方案2】:

PyQt 安装程序怎么样?使用 PyQt,您可以访问 QWizard 组件,您可以使用它来实现您的功能:

import sys
from PyQt5 import QtGui, QtCore, QtWidgets

class MyApp(object):    
    def __init__(self):
        super(MyApp, self).__init__()               
        self.wizard = QtWidgets.QWizard()

        self.page1 = QtWidgets.QWizardPage()
        self.label = QtWidgets.QLabel("A label example")
        self.lineedit = QtWidgets.QLineEdit()
        self.vlayout = QtWidgets.QVBoxLayout()
        self.vlayout.addWidget(self.label)
        self.vlayout.addWidget(self.lineedit)
        self.page1.setLayout(self.vlayout)
        self.wizard.addPage(self.page1)

        self.page2 = QtWidgets.QWizardPage()
        self.wizard.addPage(self.page2)

        self.wizard.show()
        sys.exit(app.exec_())

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MyApp()

产生这个输出

【讨论】:

以上是关于PyQt 跨平台安装程序构建器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

web平台安装器 根级别上的数据无效.行1,位置1.

如何将使用 PyQt 制作的 python 应用程序打包到可安装文件中? [复制]

如何为PyQt5构建Qt WebEngine?

在 macOS 上安装 PyQt4 时 C++ 标准库出现问题

如何构建本机 Mac OS X 安装程序(在非 Mac 平台上)?

我的 Python 应用程序与 cli 一起启动如何摆脱它 [关闭]