Python dependencies

Pitivi has only two Python runtime dependencies: librosa and matplotlib, but in the development sandbox we install quite a few Python tools useful for development.

Each Python package has its own python3-*.json file in build/flatpak, generated with build/flatpak/update_deps.py. The script uses a custom flatpak-pip-generator which downloads the compiled Python packages.

The original flatpak-pip-generator downloads only source packages, for extra security. But some packages are very complex, such as hotdoc (dev docs website generator) and matplotlib (used to draw keyframes lines on the clips). These need additional build dependencies which have to be installed beforehand.

TL/DR: As of Jan 2021 it's much easier to install the compiled packages instead of the source packages. When upstream makes it easier to use source packages we should switch back.

Updating the Python deps

Run the commands from the root of the checkout. update_deps.py updates only the architecture of the host on which it is run. Repeat the process on each supported architecture. Alternatively, ask somebody else to do it and create a separate commit.

$ . bin/pitivi-env
(ptv-flatpak) $ build/flatpak/update_deps.py

Updating your local sandbox

After the json files have been successfully updated, try out the build by updating your local development environment:

$ . bin/pitivi-env
(ptv-flatpak) $ ptvenv --update
(ptv-flatpak) $ pitivi

If errors happen, you can inspect the SDK by launching bash in a sandbox, for example:

$ flatpak run --user --command=python3 org.gnome.Sdk//50 --version
Python 3.13.x

The results of the search are