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

To update the Python deps, all you have to do is to run:

$ . 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=bash --devel org.gnome.Sdk/x86_64/46
[📦 org.gnome.Sdk ~]$ which python3
/usr/bin/python3

The results of the search are