Python versions can be quite annoying sometimes.
I run Ubuntu 1804LTS as my "daily driver" for messing around with code and for browsing, and it has python3.6 as a default; don't even get me started that there's still one or two things that want me to use python2 (it's very rare nowadays), but tiny incompatibilities of different py3 versions often crop up. Like, I just installed py-libp2p but was at first bewildered that following the repo install instructions failed - it turned out (1/2)
@pleb oh no that was not a complaint about py-libp2p, and indeed i was not even slightly confused about the Py3.7 requirement. The docs are clear.
The problem is building a couple of the requirements involves compilation, which requires python headers, and that there are several different system packages for different versions of python makes it extremely fiddly. It took me a few minutes to go from seeing the error to knowing what to do, and I'm betting many others would be quite stumped.
when building a package / development shell in nix, all dependencies are statically linked, meaning you could have many python37 packages with different system dependencies as you can link specific sys dependencies/versions on a per package/package version basis.
you can also have multiple versions of system dependencies installed alongside each other, and only use specific ones for libp2p.
@waxwing @pleb let's say pkg X requires libusb 1.0.24 and Y requires 1.0.0, i will have no issues installing both on my system as each will statically link their specific libusb dependency, i will have both versions installed, but each are used only where they are needed
this is really useful for not requiring full system updates if you need to use specific versions of packages, which is fairly common in development workflows, but still useful for some desktop workflows
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!