Conda (package Manager)
   HOME

TheInfoList



OR:

Conda is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
,
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software r ...
,
language-agnostic Language-agnostic programming or scripting (also called language-neutral, language-independent, or cross-language) is a software paradigm in which no particular language is promoted. In introductory instruction, the term refers to teaching princip ...
package manager A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...
and environment management system. It was originally developed to solve difficult package management challenges faced by
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
data scientists Data science is an interdisciplinary field that uses scientific methods, processes, algorithms and systems to extract or extrapolate knowledge and insights from noisy, structured and unstructured data, and apply knowledge from data across a bro ...
, 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 BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
. The Conda package and environment manager is included in all versions of
Anaconda Anacondas or water boas are a group of large snakes of the genus ''Eunectes''. They are found in tropical South America. Four species are currently recognized. Description Although the name applies to a group of snakes, it is often used to re ...
, Miniconda, and Anaconda Repository. Conda is a NumFOCUS affiliated project.


Features

Conda allows users to easily install different versions of
binary Binary may refer to: Science and technology Mathematics * Binary number, a representation of numbers using only two digits (0 and 1) * Binary function, a function that takes two arguments * Binary operation, a mathematical operation that t ...
software packages and any required libraries appropriate for their
computing platform A computing platform or digital platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying s ...
. Also, it allows users to switch between package versions and download and install updates from a
software repository A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source control or repository managers. Package ...
. 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 Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
, while similar Python-based cross-platform package managers (such as ''wheel'' or pip) cannot. A popular Conda channel for
bioinformatics software The list of bioinformatics software tools can be split up according to the license used: *List of proprietary bioinformatics software *List of open-source bioinformatics software Alternatively, here is a categorization according to the respective b ...
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 TensorFlow is a free and open-source software library for machine learning and artificial intelligence. It can be used across a range of tasks but has a particular focus on training and inference of deep neural networks. "It is machine learning ...
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.


See also

*
Anaconda (Python distribution) Anaconda is a distribution of the Python and R programming languages for scientific computing (data science, machine learning applications, large-scale data processing, predictive analytics, etc.), that aims to simplify package management and de ...


References


External links

* * Free package management systems Free software programmed in Python Software distribution {{free-software-stub