Most popular distros do not offer a PySide6 package. If you are a developer that needs Python Qt bindings, and you want to package your application, you can't rely on virtualenvs. You do have some alternatives, but they are not ideal:
- Use PySide2 (
python3-pyside2
). There are several issues with this approach:- PySide2 does not support Python 3.12 yet (see bug report).
This has already bit Fedora 39, which has retired
the
python3-pyside2
package from its repos. - PySide2 requires Qt5, which is EOL, placing the maintenance burden on distros.
- PySide2 does not support Python 3.12 yet (see bug report).
This has already bit Fedora 39, which has retired
the
- Use PyQt bindings. These bindings are GPL licensed, which are incompatible with non-GPL applications. Moreover, they are not official bindings, as they are provided by a third party.
This repo has information on how to package PySide6 alongside your application. It was created to aid in the development of Dangerzone, a multi-platform GUI application that uses Qt. We recommend you take a look at the challenges we encountered while packaging PySide6, in order to understand the design choices in this repo.
Important
As of 2024-04-15, this repo will no longer build a PySide6 RPM greater than 6.6.3.1. The reason is that PySide6 6.7.0 is now available in Fedora Rawhide, and will soon be available in the rest of the Fedora releases.
UPDATE: On 2024-05-05, an update in Fedora's Python3 package triggered a a segfault in the PySide6 package (see Bugzilla #2279088). Unfortunately, we can't wait for Fedora's PySide6 to reach the stable releases, so we have to package PySide6 6.7.1 ourselves.
You can build source and binary RPM packages with the following commands:
dnf install -y rpm-build python3-devel
./build.sh
You can also find nightly builds in our GitHub actions page.