It took me a long time but I finally understand that "python" isn't a language, "python" is a superposition of a dozen or so different languages.
For success with "python" you have to be ultra careful with ensuring that if the person who wrote the script used "python 3.9" that you also run it with "python 3.9" - if you don't you will be faced with hundreds of exceptions that have no relation to actual reality.
Never rely on distro packaging, always build from source. Use venvs liberally.