Conda (package manager)
Conda is an open-source, cross-platform, language-agnostic package manager and environment management system. It was originally developed to solve difficult package management challenges faced by Python data scientists, and today is a popular package manager for Python and R. At first part of Anaconda Python distribution developed by Anaconda Inc., it ended up being useful on its own and for things other than Python, so it was spun out as a separate package, released under the BSD license. The Conda package and environment manager is included in all versions of Anaconda, Miniconda, and Anaconda Repository . Conda is a NumFOCUS affiliated project. Features. Conda allows users to easily install different versions of binary software packages and any required libraries appropriate for their computing platform. Also, it allows users to switch between package versions and download and install updates from a software repository. Conda is written in the Python programming language, but can manage projects containing code written in any language (e.g., R), including multi-language projects. Conda can install Python, while similar Python-based cross-platform package managers (such as "wheel" or pip) cannot. A popular Conda channel for bioinformatics software is "Bioconda", which provides  multiple software distributions for computational biology. Comparison to pip. The big difference between Conda and the pip package manager is in how package dependencies are managed, which is a significant challenge for Python data science and the reason Conda was created. Before Pip 20.3, Pip installed all Python package dependencies required, whether or not those conflict with other packages previously installed. So a working installation of, for example, Google TensorFlow would suddenly stop working when a user pip-installs a new package that needs a different version of the NumPy library. Everything might still appear to work but the user  could get different results, or would be unable to reproduce the same results on a different system because the user did not pip-install packages in the same order. Conda checks the current environment, everything that has been installed, any version limitations that the user specifies (e.g. the user only wants TensorFlow >= 2.0) and figures out how to install compatible dependencies. Otherwise, it will tell the user that what he or she wants can't be done. Pip, by contrast, will just install the package the user specified and any dependencies, even if that breaks other packages. Conda