Good article! I agree with most of this, and in general I think these problems are exaggerated. I also can't deny that there's still plenty of room for improvement in python packaging and dependency management tooling. I notice this the most not in my own projects, but whenever I'm helping someone who's new to the language. I think it's worth paying attention to things that beginners find difficult, and it can be true that both:
1. There are some pitfalls here that are easy for beginners (and even experienced developers) to fall into, and
2. In online discussions, those problems are often portrayed as being much worse than they actually are.
Of the three categories of tools mentioned in the article, 'python version manager' is the only area where I find it easy to point to a single tool without thinking too hard about it: pyenv. It does one thing and does it quite well, and I can easily recommend it even to new developers.
On the other hand, for environment and dependency management:
> In the second case, use something modern that manages dependencies for you with minimal effort. I like poetry, but you do you.
Poetry is also my preferred tool for my own projects, but I've also seen enough ways it can go wrong that I hesitate to recommend it to beginners. I think a lot of people won't know what to do with advice like "Use something modern that manages dependencies for you with minimal effort," since "modern" and "minimal effort" are fairly subjective qualities that there isn't a clear consensus on.
Of the three categories of tools mentioned in the article, 'python version manager' is the only area where I find it easy to point to a single tool without thinking too hard about it: pyenv. It does one thing and does it quite well, and I can easily recommend it even to new developers.
On the other hand, for environment and dependency management:
> In the second case, use something modern that manages dependencies for you with minimal effort. I like poetry, but you do you.
Poetry is also my preferred tool for my own projects, but I've also seen enough ways it can go wrong that I hesitate to recommend it to beginners. I think a lot of people won't know what to do with advice like "Use something modern that manages dependencies for you with minimal effort," since "modern" and "minimal effort" are fairly subjective qualities that there isn't a clear consensus on.