When developing, you generally want to have a reproducible environment, for each project. Maybe you project is currently using numpy
as 1.19 version, but what if numpy v2 is so cool that despite breaking changes you want to use it in your new projects? If you have numpy installed globally, it will be a headache: if you step up, every old projects will be un-usable (which is inconvenient); if you never step up anything, you will be stuck in 2020 forever (which is sad).
Hence, it is best practice to keep things tidy, and to have specific environment to work with for each of your projects, containing all dependencies this project needs in order to run properly. In Python, those seem to be called "virtual environments" (*seriously, across programming communities semantics can be tricky: what exactly is a module? a package? a dependency? an environmen