Sounds easy? Well, it should have been. I’m not talking about a “Hello, World!” (although it is more or less on the same level for me). The goal was to write a set of three MQTT clients that properly talk with each other and interact nicely.
So I had to learn Python and MQTT on the same day. Should not be an issue after 40 years of programming. But it quickly turned out that the Python library/package for MQTT on Ubuntu was heavily outdated (1.6), and did not supply all the functions the documentation and examples (2.0) asked for. Using pip3 didn’t work, as it complained that the package structure was maintained by the OS. In the end, I had to virtualize the python3 system and pip3 the 2.0 package there and run it.
After about three hours, I had the clients working as they should. Yes, I think MQTT is a good base for the next project.
I recommended checking out package managers that will simplify using whatever version of a library you want with project level virtual environments.
I haven’t done heavy python dev since 3.7, so I don’t know the full landscape of options these days, but here are some references to dig into.
https://python-poetry.org/ is the one I started using as the first step up from pip.
It looks like there are some new contenders like hatch, rye, and pdm: https://dev.to/adamghill/python-package-manager-comparison-1g98.
There is also pixi referenced from the comments in that article: https://github.com/prefix-dev/pixi