The Python programming language is, I think, a fantastic tool. But there is two fucking thing that really makes me sad: packaging and dependency management.

Today, my Linux distribution, Arch, decide that it was OK to migrate python 3.8. And it broke tons of shit on my machine. So I took a moment to re-install and harden stuff so that it doesn’t happen again.

Pyenv To Have Multiple Version

I use Pyenv with the plugin to handle virtualenv. I use to rely on pew. But pew rely on the system Python. So today I couldn’t use my virtualenv… pew is a great tool but I don’t know why it use a fork of pythonz to handle version management. Latest version that you can install with pew is 3.5. 3.5 was release in 2015

Pipx for binary

For tools that are written in python but used as a program, I use pipx instead of the distribution packages. Example of packages I install with pipx: ansible, docker-compose, pgcli.

Package management

I’m still using good old requirements.txt to handle my dependencies. I tried pipenv but was not convinced by it. I think Pipfile is a huge step forward for dep mgmt in python but I can’t get use to it. I didn’t tried poetry maybe it’s good. If you have opinion on this you can reach me on twitter at @DesgrangeRemi