Pythons biggest risk right now is stability. Seems like things keep breaking between "minor" releases. You used to never have to worry what minor version you were using, but within the past couple of years it has become very important.
IMO pythons biggest risk is tooling. Installing and maintaining a Python toolchain, virtual environments, installing 3rd party deps, etc is pretty painful compared to languages/runtimes like Node.js, Rust, C#, PHP, etc (which admittedly are some of the better languages in this regard).
It's not the biggest of deals (and I doubt it will significantly hurt Python adoption for niches like data science which have complex installation requirements anyway). But it definitely keeps me from using Python for "quick scripts" which it should otherwise be a good choice for. And it's frankly embarrassing that a supposedly modern language is barely doing better than C in this regard (ok, it's quite a bit better than C, but still a way behind what I would expect).
Having said that, stability is also a big deal, so maybe you're right. Perhaps both are a big deal.
While I think your concern is a bit overblown, I would concur that tooling is a Python gap. Not because there is any big deficiency in what they can do to manage a project, but because there are just too many options. There is no blessed workflow.
The Python leadership has refused to take a stance on picking a winner. The power vacuum has lead to multiple competing tools, which all do things a little differently.
I have taught Python to a few people and the initial ramp up is embarrassing. I cannot point to a guide on Python.org that says This Is The Way(TM). Instead, I have to give an opinionated workflow full of caveats on how to setup an environment, because there is no “correct” way to get started.
I really do not care who wins. I have had to adopt and transition many packages over the years. Just pick something.
Do you have any examples of breaking changes in minor releases? I use Python every day but haven't come across any, but then I'm not doing data analysis with it so there's probably a huge chunk of Python that I never even think about.
The deprecation policy allows backwards incompatible changes after being documented and printing a deprecation warning for 2 releases. There are only minor releases in the current era of Python development (Python 3.10, 3.11 etc and Python 4.0 only in the far horizon)
Not that I can remember. But that's the fault of the packages rather than Python isn't it? I've definitely never run into packages needing different minor versions like 3.12.x and 3.12.y