Earlier quoted context omitted.
I'm tempted to say that the very same reason why you need different environments is precisely because the package system is not healthy. And the fact that it's not easy to use doesn't really make things better.
What packaging systems are there that don't encourage different environments for different projects? I think Python's biggest weakness on this front is mainly that virtual environments came along too late - if they'd been designed into how pip etc worked from the beginning we would be in much better shape.
Lots of programming languages or build systems will look for dependencies in globally-known locations.
Other than cargo, python's virtualenv, node_modules, and some other modern languages/systems I would imagine most are not project-scoped. Go had a single global dependency tree until go.mod, etc...