Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
testfixtures
testfixtures is a collection of helpers and mock objects that are useful when writing automated tests in Python. (by simplistix)
using vanilla pip is hot garbage, but poetry and pipenv make it much more bearable by providing dependency lockfiles and easy integration with virtualenv
Dependency management is the main reason why I don't use Python. I recently investigated an insistent bug in the this-week-in-rust website, which appeared after the maintainer updated their Python environment. The situation with npm is better, but it still isn't as pleasant as with Cargo.
From a distro package maintainer perspective: at least C/C++ has the ability to link to libraries with different SONAMEs (or with nix, any other library). Python is exhausting to maintain because it's environment dependent. And although, this is bandaided by things like venv, where you can have separate environments, many people want to use python which have native extensions (e.g. tensorflow, PyO3, tkinter, numpy, etc), which need to play nicely with every other exposed python module. It creates a lot of work pinging upsteams that their semi-active package should support the latest of a given dependency. At worst, you get situations like this
I’m personally complaining that pip is so much behind cargo. I have some hope with Pyflow though.