【发布时间】:2019-08-27 22:08:44
【问题描述】:
我需要为所有主要 3 操作系统(Windows、Linux 和 MacOS)部署一个基于 Qt 5.12.1 的 pyside2 应用程序。
我已经检查了How to make a Python script standalone executable to run without ANY dependency?,但这不是我想要的,因为我需要一个与 Qt 相关的方法,例如 windeployqt、macdeployqt、linuxdeployqt(单独的项目)。
正如 eyllanesc 所指出的:“python 是一种不会生成二进制文件的脚本语言”。但是,Qt 公司也应该考虑到这一点,让我们更容易部署 pyside2 应用程序。至少与部署 C++/QML 应用程序一样容易。
所以我想要一个像 windowsdeployqt、macdeployqt、linuxdeployqt 之类的工具...它适用于 pyside2 应用程序.
[更新]
eyllanesc 推荐 fbs (fman build system) 作为起点,因为没有官方工具来部署 pyside2 应用程序。这应该作为一种解决方法。也欢迎新的答案。
请在 Qt 公司发布官方工具后尽快回答。
[注意]:我正在使用基于Qt 5.12.1
的Qt Creator 4.8.1【问题讨论】:
-
没有。这不是我的意思。我想要适合我要求的每个平台的最佳方法。我会编辑我的问题,说明清楚。
-
另一种选择是您创建一个 setup.py(您甚至可以在 pypi 中发布它)来分发您的应用程序,因此您可以使用 pip 在所有操作系统中安装它
-
好吧,我在 Qt 帮助中读到了一些关于名为 windeployqt 的工具的信息,但我找不到将其应用于 pyside2 应用程序的方法。还有 macdeployqt 和一个单独的项目 linuxdeployqt。所有人都面临同样的问题。
-
你知道,我想要(可能)一种 Qt 方式来做到这一点。如果 Qt 公司添加了对 python 的支持,他们应该添加一种部署 Qt Python 应用程序的方法,还是不添加?
-
这是 Qt 的 C++ 版本,C++ 生成一个需要其他二进制文件(依赖项:.dll、.lib、.so 等)的二进制文件,而 xxxdeployqt 只查找那些操作系统中的二进制文件。另一方面python是一种脚本语言,不会生成二进制文件(可以用pyinstaller等工具生成二进制文件)