Key reasons why creating conda environments is necessary/useful:
Dependency and version management: Conda environments allow you to isolate different projects that may have conflicting dependencies or require different versions of packages. This avoids dependency clashes.
Reproducibility: Environments make it easy to exactly replicate the software environment used for a project/analysis. This ensures reproducible results.
Code sharing: Environments allow sharing code/notebooks with others while bundling all dependencies. Avoid issues caused by missing or wrong package versions.
Testing different stacks: You can test different package combinations and Python/IPython versions easily using separate environments without interfering with system setup.
Package conflicts: Some packages conflict in how they use or install dependencies. Environments prevent such issues from arising.
Clean project separation: Keeping each project activitiesisolated in its own environment prevents namespace pollution and clutter. Easy to switch between projects.
System stability: Environments avoid the risk of new package versions breaking existing projects or the system Python setup.
Temporary setups: Useful for experimenting with packages without permanently changing the system configuration. Easy clean up by deleting env.
So in summary, conda environments make dependency and version management clean and reproducible for both development and production environments.
Install miniconda from here