Visit me elsewhere:

Python dependency hell

TL;DR: This post is vague and subjective. It concludes: Python, great for small scripts, but with bigger projects (like projects that then depend on Django and more) will lead you into dependency hell.

I always agreed on python being a (potentially) great scripting language for smaller scripts and tooling. Recently, I set up python for a script with required additional dependencies and secondly, I tried to get a full-blown python Django installation with specific extensions running.

On my first quest, I tried to set up the SMF Authenticator python script for authenticating Mumble users through a SMF installation database. I first tried setting it up in a windows environment, and failed ā€“ with the ice python modules, if I remember correctly. On the Debian server it was a lot easier, with pre-baked packages in the repository.

On my second quest, I tried to get an instance of the translation website software Pootle running. And oh man, was it even (a lot) worse. I always thought using python for more than the simplest of scripts would be awesome. For websites indeed, with a scripted environment, big library ā€“ standard and third party -, and (pre)compile-ability.

Python made an incompatible jump from the 2.x versions to 3.0.Ā  While 3.0 was released four(!) years ago, the mainly in use version still is 2.7. Now, thatā€™d be a caveat, but not so bad, if you could just simply work with it after choosing a version. But I now feel like dependency management and/or valid project setup are complicated. I may be too frustrated and not knowingly enough, but my current impression certainly is not positive for bigger projects. Iā€™d have liked it to be positive.

My conclusion after these adventures: When you go past the standard library you may run into severe problems ā€¦ I felt like setting up and using a C++ project environment (if you ever tried to get one running, chances are you know what Iā€™m talking about).