qtpip: a simple tool to get commercial Qt for Python packages

If you have been following the 6.6 release blog posts, both the general Qt and Qt for Python ones, you might be aware of qtpip.

qtpip is a simple tool that wraps pip to provide an easy way to obtain Qt for Python wheels for license holders.

The workflow

If you are a community user, there is no change for you. If you are a commercial user, you should first install and login into the Qt Installer once in order to generate the Qt configuration that our tool requires. Then you need to install qtpip via pip install qtpip. After this, you can use qtpip instead of pip to install the commercial Qt for Python wheels.

Community workflow

Commercial workflow

# Activate virtual environment

$ pip install pyside6

# Activate virtual environment

$ pip install qtpip

$ qtpip install pyside6

 

Considering the current approach of getting the packages from account.qt.io, downloading the ones specific to your current OS, and then manually installing them in your virtual environment, qtpip simplifies the tedious process.

Why not just pip?

The Python Package Installer (pip) is an excellent tool to install Python modules from different indexes. For example, when you run pip install PySide6, you are using the PyPI index by default, but you can change it and point to a different URL, in its configuration. But what if you need to enable a new index with login credentials?

Qt licenses are handled by different servers that can identify users and list the available licenses and types. A clear example is the Qt Installer that you might use frequently if you are a Qt license holder or if you like to get Qt installations without the need to build it from source.

By using the logic from the Qt Installer, we wrapped pip functionality around the same login information and provided a tool that can read your credentials in order to work.

Different licenses, different packages

Something we needed to consider is that, like Qt/C++, we also have special Python packages, tools, and types of releases depending on the Qt License.

diagramas

Qt Application Development (AD) and Qt Device Creation (DC) are two types of Qt licenses that have their own variations. Read more here.

Our Community release includes PySide6 (Essentials + Addons) and Shiboken6 (Generator + Module) in our Community release.

The AD Professional license holders can access the same content as our Community packages. Additionally, it also includes access to the LTS releases and a tool included in the Shiboken package, the Shiboken Wizard.

The AD Enterprise, DC Professional, and DC Enterprise users have access to everything previously described, but also an additional package (PySide6_M2M), that provides the modules Qt CoAP, Qt MQTT, and Qt OpcUA.

qtpip will make the right selection depending on your license and provide the packages accordingly.

Future steps

This is the initial release of qtpip and we need your help to make it better. Please post any issues as a bug report using the Qt pip component on the Qt Bug Tracker.

We are aware of the potential this might have for getting other packages, like snapshots from the different branches, RC packages, new packages including new functionality, technical preview components, etc., so we are also looking forward to hearing back from you in case you have a use case in mind that can improve qtpip.

 


Blog Topics:

Comments