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 跨平台安装程序构建器 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何将使用 PyQt 制作的 python 应用程序打包到可安装文件中? [复制]
在 macOS 上安装 PyQt4 时 C++ 标准库出现问题