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).