Why use distro packages instead of pip?
=======================================
* Packages integrate well with the system
* Packages can be installed/updated/removed with the package manager which users probably already know how to use
* No need to learn/use pip and venv, no need to compile anything

The following lists should work for any recent release of the named distros and derivatives. However, for some modules, some distros might ship versions
that are too old. These should be installed through pip until the distro adds/updates the package.

IMPORTANT PySide2 + Python 3.8 compatibility notice
===================================================
This especially applies to Arch and other rolling release distro users.
Slower distros most likely won't upgrade right away to Python 3.8 and thus won't have this problem.
If you are using Python 3.8 or newer, you need at least Qt version 5.14 and the corresponding PySide2 version.
Otherwise you will get a `TypeError: 'Shiboken.ObjectType' object is not iterable` error on startup. To temporarily work around this by using PyQt5,
install PyQt5 instead of PySide2, then either remove PySide2 or set the QT_API environment variable to PyQt5.

Arch Linux, Manjaro
===================
Install from the AUR: https://aur.archlinux.org/packages/hydrus/
(This is what I use personally and it works great - it's basically just a script which installs dependencies, clones the source from the official repo and puts it in the right place.)
Even if not installing from the AUR, the above link has a full and up-to-date list of the required package dependencies.
Note that you can use PyQt5 instead of PySide2 (however PySide2 is recommended). If you choose to use PyQt5, you don't need PySide2 or shiboken2 but have to install python-pyqt5 and python-sip-pyqt5.

Ubuntu, Debian, Linux Mint
==========================

Note: if you are using an older release, the python3-pyside2.* packages listed below might not be available. If that is the case,
install PySide2 with:
pip3 install --user pyside2

Required:
python3-chardet python3-html5lib python3-bs4 python3-lxml
python3-nose python3-numpy python3-opencv python3-six python3-pil
python3-psutil python3-openssl python3-yaml python3-requests
python3-send2trash python3-service-identity python3-twisted
ffmpeg python3-pyside2.qtwidgets python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtcharts
You also need python3-qtpy, but the version shipped by these distros (as of this writing) is too old. At least version 1.8 is required. Until the distros catch up, it is recommended that you install
this module with pip instead of the package manager, like this:
pip3 install --user qtpy
You might need to install the shiboken2 module from pip since it looks like it is not currently packaged:
pip3 install --user shiboken2
Instead of PySide2 (the python3-pyside2.* packages above and shiboken2), you can also use PyQt5 (python3-pyqt5, python3-sip), though PySide2 is recommended.

Optional:
python3-lz4 python3-pysocks python3-mock python3-httmock

pylzma doesn't seem to be packaged, but it is not essential.

Package search: https://packages.debian.org/, https://packages.ubuntu.com/

Fedora
======

Required packages:
python3-beautifulsoup4 python3-chardet
python3-html5lib python3-lxml python3-nose
python3-numpy python3-opencv python3-six python3-pillow python3-psutil
python3-pyOpenSSL python3-pyyaml python3-requests
python3-send2trash python3-service-identity
python3-twisted
python3-qtpy (1.8 or newer)
python3-pyside2
python3-shiboken2
Instead of PySide2 (python3-pyside2, python3-shiboken2) you can also use PyQt5 (python3-sip, python3-qt5).

The optional stuff:
python3-lz4 python3-pysocks python3-httmock qt5-qtcharts

mock and pylzma doesn't seem to be packaged, and ffmpeg isn't in the base Fedora repo (due to licensing/patents scare?),
but can be installed from the rpmfusion repo (https://rpmfusion.org/). From these, only ffmpeg is necessary for normal users.

Package search: https://apps.fedoraproject.org/packages/

openSuse
========

Required:
python3-beautifulsoup4 python3-chardet python3-html5lib python3-lxml
python3-nose python3-numpy python3-opencv python3-six
python3-Pillow python3-psutil python3-pyOpenSSL
python3-PyYAML python3-requests python3-Send2Trash
python3-service_identity python3-Twisted
ffmpeg-4
python3-pyside2
python3-QtPy
python3-python-mpv
You might need to install the shiboken2 module from pip since it looks like it is not currently packaged.
Instead of PySide2 (python3-pyside2 and the shiboken2 module) you can also use PyQt5 (python3-sip, python3-qt5).

Optional:
python3-lz4 python3-pylzma python3-PySocks
python3-mock python3-httmock libqt5-qtcharts

Package search: https://software.opensuse.org/search
