It's firmly in the realm of incidental complexity, viz. solving problems you wouldn't have in the first place if dynamic shared object loading, ld.so, and glibc would do their job or pointless Linux distro diversity wouldn't exist and/or static linking be used instead. And Python's inexcusable package management story, and even more inexcusable decision to base distro package management systems (yum, dnf) on Python of all languages.