Python is the nicest programming language, very clear and concise at the same time, powerful, versatile and expressive. However its tooling is continuonsly making life very hard to the developer. Here are some of the problems I have encountered.
The dependency and package management is flawed by design: by default, all dependencies are downloaded to a common, system-wide path. This quickly results in dependency conflicts, so that nobody uses this default approach and resort to one of multiple workarounds.
Workarounds consist on defining some local virtual environment, which the user must explicitly "enter" when working on a project by issuing some command, and explicitly leave with another command. It's not really clear which of the workarounds one should use, as they are quite similar but not the same.