商业用途

Qt for Python 遵循与 Qt 相同的许可协议,这意味着有两个发行版本,社区版(LGPLv3/GPLv3)和商业版。更多信息,请查看 Qt 许可 页面。

作为简要说明,您可以通过拥有以下任何许可证来获取商业版的 Qt for Python 包:

  1. 用于应用程序开发专业的Qt (ADP)

  2. 用于应用程序开发企业 (ADE) 的 Qt

  3. 用于设备创建的专业版Qt (DCP)

  4. 用于设备创建企业版的Qt (DCE)

唯一的区别是ADP许可证包含额外的 Qt OPC UAQt MQTTQt CoAP模块,这些模块以特殊的Python wheel形式分发。

Qt for Python 遵循与 Qt 相同的方法,这意味着商业用户将可以访问我们针对任何给定版本的商业包,或特殊的商业长期支持(LTS)版本。

商业用户不应通过pip install pyside6安装社区版发行版,以避免许可问题,应参考可以从Qt Account、Qt Installer或通过qtpip工具获取的包。

安装

我们理解商业轮子的安装将取决于您的使用场景。为此,我们目前提供了三种安装商业版Qt for Python的方法:使用命令行工具、使用维护工具或手动下载包。

qtpip - 一个商业轮子安装程序

qtpip 是围绕 pip(Python 的包安装程序)的一个封装,提供了与商业许可证检测的集成。

它要求存在一个Qt许可证。在全新安装时,可以通过首先启动Qt维护工具来完成此操作。

要设置该工具,我们建议为您的项目创建一个虚拟环境,然后像安装其他模块一样安装该工具:

# Create and activate a virtual environment first
# then install 'qtpip'
pip install qtpip

# Now install pyside6 (or any of the Qt for Python packages)
qtpip install pyside6

除了install命令,你还可以使用uninstall(就像在pip中一样),但你也可以执行fulluninstall`来完全移除所有Qt for Python包。你可以通过运行qtpip -h来找到更多信息:

$ qtpip -h
Usage: qtpip [options] install <package> fulluninstall <PySide6/shiboken6/all>
Qt wrapper around pip.
These arguments override pip's. For more, refer to pip --help

Options:
  -f, --force                  Force installation if OSS wheels were already
                               installed.
  --no-input                   Disable prompting for input.
  --no-cache-dir               Disable the cache.
  --disable-pip-version-check  Don't periodically check PyPI to determine
                               whether a new version of pip is available for
                               download.
  --no-color                   Suppress colored output.
  --user                       Install to the Python user install directory for
                               your platform.
  --force-reinstall            Reinstall all packages even if they are already
                               up-to-date.
  -h, --help                   Displays help on commandline options.
  --help-all                   Displays help, including generic Qt options.
  -v, --version                Displays version information.

Arguments:
  install                      Installs a package, this can be any of PySide6,
                               PySide6-Essentials, PySide6-Addons, shiboken6 or
                               shiboken6-generator for the respective commercial
                               wheel, or any other wheel from PyPi.
  fulluninstall                Fully uninstalls all packages related to
                               PySide6, shiboken6, or both.

注意

qtpip 的发布周期将与 Qt for Python 的发布周期独立。

维护工具

作为商业用户,您可以从Qt Maintenance Tool下载商业版的轮子。适用于Qt/C++的相同版本也适用于Python绑定。

轮子文件将会被下载,但不会安装,主要是因为它们应该被安装到虚拟环境中,而不是默认的解释器中。为了简化安装步骤,将会提供一个requirements.txt文件与轮子文件一起:

pip install -r /path/to/Qt/QtForPython/6.6.0/requirements.txt

作为轮子的补充,您也可以下载源代码。

注意

以这种方式安装的Wheels可以被Qt Creator检测到,它会为你当前的Python解释器提供安装选项。

使用 account.qt.io

前往您的Qt 账户页面,并在侧边菜单中选择下载选项。您将在产品部分找到选择 Qt for Python 的选项:

Products screenshot

有两个选项将列出不同的包集合:

  • Qt for Python 商业版轮子 这些是在商业许可下的非长期支持(LTS)版本,包含仅限商业版的功能和工具。此外,这里也是您可以找到 Qt for automation (M2M 协议) 包的地方。

  • Qt for Python (商业长期支持版) 在这里你可以找到5.15.x LTS和6.2.x LTS版本。

一旦你选择了其中任何一个,你将能够选择你想要下载的Qt for Python 商业版轮子包的版本:

Commercial versions screenshot

以及Qt for Python (商业长期支持版) 包:

LTS versions screenshot

对于任何版本,您都可以根据您的操作系统(macOS、Windows 或 Linux)下载许多软件包。要了解更多关于这些软件包包含的内容,请查看Package Details页面。

一旦你下载了这些包,建议你创建一个Python虚拟环境来安装它们 - 查看入门页面了解如何操作。 在你的终端激活环境后,运行以下命令(适用于macOS/Linux):

pip install *.whl

要安装所有内容,并让pip解决包之间的依赖关系,或者在Windows上手动选择适当的组合:

pip install shiboken6-... PySide6_Essentials-... PySide6-Addons... ...

或者对于Windows,您可以指定以下命令,其中包括版本,并假设您在与wheels相同的目录下运行它:

pip install --no-index --find-links=. PySide6==6.4.0.commercial

注意

Package Details页面所述,包的依赖关系要求您首先安装shiboken6包,然后如果您对绑定生成感兴趣,可以安装shiboken6-generator;或者如果您想使用基本模块,可以安装PySide6_Essentials。在安装Essentials之后,您可以根据需要选择安装PySide6_AddonsPySide6_M2M

Qt Creator 集成

Qt Creator 提供了从主向导创建新的 Qt for Python 项目的选项。

要执行项目,请确保选择了正确的Python解释器,以便Qt Creator可以使用您刚刚安装的商业模块。转到编辑 -> 首选项,在那里您可以找到Python选项,该选项将显示以下内容:

Qt Creator Python options

你可以添加、删除和修改环境。要包含一个新的环境,请确保从你的环境中选择主要的Python可执行文件。这可以在path_to_your_env/bin/python(macOS和Linux)或path_to_your_env\python.exe(Windows)中找到。

作为替代方案,您可以从虚拟环境中启动Qt Creator,自动检测您的安装。

从其他版本迁移

如果你有一个使用开源发行版的虚拟环境,你需要首先使用pip uninstall 命令卸载这些包。

要检查是否安装了包,请运行pip list并查找 shibokenPySide包。

我们总是建议创建一个新的虚拟环境,因此如果有疑问,最好删除旧的虚拟环境(如果您之前有安装过)。虚拟环境的本质在设计上就是易变的。

Python 工作流程

Qt框架是一个C++框架,我们借助Shiboken(绑定生成器)将其暴露给Python,这使我们能够创建PySide Python模块。

Qt for Python 试图在 C++ 和 Python 项目的工作方式之间找到一个平衡点,因此需要做出许多决策,其中之一是包的发布需要遵循相同的 Python 工作流程,这意味着需要创建 Python 包(wheels)并以一种人们可以使用 pip 工具来安装它们的方式进行发布。

PyPi 是分发开源软件包的主要平台,但当需要商业软件包时,情况就不同了。在我们所有的选择中,我们最初决定在 Qt Account 平台上提供软件包(wheels),以便人们可以按需下载和安装,但我们正在研究简化这一过程的方法。

关于将Qt for Python包含在Qt维护工具中的讨论也在进行中,但这带来了新的复杂性。原因是该工具需要人们在单独的位置选择或创建Python虚拟环境以进行安装。此外,Python工作流程认为虚拟环境非常不稳定。这意味着它们经常被删除和创建,因此重新安装或更新Qt for Python包可能会经常发生。