Conda (package manager)
{{Short description|Package manager and environment management system}}
{{Multiple issues|{{Primary sources|date=June 2023}}}}
{{Infobox software
| name =
| logo = Conda logo.svg
| logo alt =
| logo caption =
| screenshot =
| screenshot size =
| screenshot alt =
| caption =
| collapsible =
| author =
| developer =
| released =
| discontinued =
| ver layout =
| latest release version = {{wikidata|property|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| latest preview version =
| latest preview date =
| repo =
| programming language = Python
| engine =
| operating system =
| platform =
| included with =
| size =
| language =
| language count =
| language footnote =
| genre = Package manager
| license = BSD
| website =
| standard =
| AsOf =
}}
Conda is an open-source,
{{cite web
|title=Conda
|url=https://conda.io/
|website=conda.io
|accessdate=11 June 2019
}} cross-platform,
{{cite news
|title=Building Conda Packages for Multiple Operating Systems
|url=https://www.pydanny.com/building-conda-packages-for-multiple-operating-systems.html
|accessdate=11 June 2019
|publisher=Pydannt
|date=29 January 2015
}} language-agnostic package manager and environment management system. It was originally developed to solve package management challenges faced by Python data scientists, and today is a popular package manager for Python and R.
{{cite book
| last1 = Gorelick
| first1 = Micha
| last2 = Ozsvald
| first2 = Ian
| title = High Performance Python: Practical Performant Programming for Humans
| publisher = O'Reilly Media
| edition = 1st
| date = September 2014
| pages = 370
| isbn = 978-1449361594}}
{{cite web
| last = Jackson
| first = Joab
| title = Python gets a big data boost from DARPA
| publisher = networkworld
| date = 5 February 2013
| url = http://www.networkworld.com/article/2163350/application-performance-management/python-gets-a-big-data-boost-from-darpa.html
| accessdate = October 30, 2014}}
At first, Anaconda Python distribution was developed by Anaconda Inc.; later, it was spun out as a separate package,{{cite web |title=What's the difference between Anaconda, conda, and Miniconda?|url=https://bioconda.github.io/contributor/faqs.html#conda-anaconda-minconda |website=FAQ - Bioconda documentation |accessdate=22 April 2020}} released under the BSD license.{{cite web |title=State of Conda, Oct. 2014 |date=9 October 2014 |url=http://penandpants.com/2014/10/09/state-of-conda-oct-2014/ |publisher=Pen and Pants |accessdate=9 April 2015}}{{cite book |author1=Tony Ojeda |author2=Sean Patrick Murphy |author3=Benjamin Bengfort |author4=Abhijit Dasgupta |title=Practical Data Science Cookbook |date=25 September 2014 |publisher=Packt Publishing Ltd |isbn=978-1783980253 |url=https://books.google.com/books?id=E5efBAAAQBAJ&q=%22continuum.io%22&pg=PT63 |accessdate=19 March 2015}}{{cite book |last1=Langtangen|first1=Hans Petter |title=A Primer on Scientific Programming with Python |date=2014 |publisher=Springer |isbn=978-3642549595 |url=https://books.google.com/books?id=GPUuBAAAQBAJ&q=continuum&pg=PA827 |accessdate=19 March 2015}}{{cite book |author1=Yves Hilpisch |title=Python for Finance: Analyze Big Financial Data |date=11 December 2014 |publisher=O'Reilly Media |isbn=9781491945391 |url=https://books.google.com/books?id=E93SBQAAQBAJ&q=continuum&pg=PA28 |accessdate=19 March 2015}}{{cite news |title=Continuum Analytics Launches Anaconda Server for Enterprise Package Management |url=https://finance.yahoo.com/news/continuum-analytics-launches-anaconda-server-140000663.html |accessdate=19 March 2015 |publisher=Yahoo Finance |date=30 January 2014}} The Conda package and environment manager is included in all versions of Anaconda, Miniconda,{{cite web |title=Miniconda |url=https://conda.io/docs/glossary.html#miniconda-glossary |website=conda.io |access-date=2018-07-11 |archive-url=https://web.archive.org/web/20180910152348/https://conda.io/docs/glossary.html#miniconda-glossary |archive-date=2018-09-10 |url-status=dead }} and Anaconda Repository.{{cite web |title=Anaconda repository |url=https://anaconda.org/anaconda/repo |website=anaconda.org}} Conda is a NumFOCUS affiliated project.{{cite web|title=NumFOCUS Affiliated Projects|url=https://numfocus.org/sponsored-projects/affiliated-projects|publisher=NumFOCUS|access-date=2021-10-25}}
Features
As a package manager, Conda allows users to install different versions of binary software packages and their required software dependencies appropriate for their computing platform from a software repository.{{Cite web |last=Pugh |first=David R. |date=2020-07-14 |title=Getting Started with Conda |url=https://towardsdatascience.com/managing-project-specific-environments-with-conda-b8b50aa8be0e |access-date=2024-07-09 |website=Medium |language=en}} Conda checks everything that has been installed, any version limitations that the user specifies (for example, the user wants a specific package to be at least version 2.1.3), and determines a set of versions for all requested packages and their dependencies that makes the total set compatible with one another. If there is no set of compatible dependencies, it will tell the user that the requested combination of software packages at the requested versions is not possible.
Secondly, Conda allows users to create such a set of software packages in isolation from the rest of the computing platform, in what Conda calls an environment.{{Cite web |title=Managing environments — conda 24.3.1.dev40 documentation |url=https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html# |access-date=2024-04-14 |website=conda.io}} This allows the user to create various sets of software packages for different projects. When the users switches between those projects, they switch to the relevant environment, thereby avoiding the re-installation or removal of conflicting packages. To further facilitate the setup of such environments, Conda can also install Python, the interpreter for the software packages itself.{{cite web |year=2015 |title=3. Managing Python |url=http://conda.pydata.org/docs/test-drive.html#managing-python |archive-url=https://web.archive.org/web/20150616213859/http://conda.pydata.org/docs/test-drive.html |archive-date=16 June 2015 |access-date=16 Jun 2015 |quote=So now let’s say you need Python 3 to learn programming, but you don’t want to overwrite your Python 2.7 environment by updating Python. You can create and activate a new environment named snakes, and install the latest version of Python 3 as follows...}}
Conda is written in the Python programming language, but can manage projects containing code written in any language, including multi-language projects.
Channels
Conda uses channels to obtain package metadata and versioning information. For example, Anaconda distribution uses Anaconda repository containing over 7500 packages as the default (called defaults) channel.{{Citation needed|date=April 2025}} However, in 2024, Anaconda distribution updated its licensing terms to require fees except for few specific cases.{{Cite web |title=Navigating Anaconda Licensing Changes: What You Need to Know |url=https://www.datacamp.com/blog/navigating-anaconda-licensing |access-date=2025-04-16 |website=www.datacamp.com |language=en}}{{Cite web |last=Mah |first=Paul |date=2024-08-21 |title=Anaconda Threatens Legal Action Over Licensing Terms |url=https://www.cdotrends.com/story/4173/anaconda-threatens-legal-action-over-licensing-terms |access-date=2025-04-16 |website=CDOTrends |language=en}} conda-forge is a popular open-source, community-run alternative that provides packages for a wide variety of software,{{Cite web |date=2025-04-14 |title=conda-forge documentation {{!}} conda-forge {{!}} community-driven packaging for conda |url=https://conda-forge.org/docs/ |access-date=2025-04-16 |website=conda-forge.org |language=en}}{{Cite web |title=Opinion: Conda, Anaconda and the much bigger problem behind it |url=https://galaxyproject.org/news/2024-08-20-opinion-conda/ |access-date=2025-04-16 |website=galaxyproject.org |language=en}} whereas Bioconda is a specialized channel for packages related to bioinformatics and biomedical research.[https://bioconda.github.io/ Bioconda official website].{{cite bioRxiv |biorxiv=10.1101/207092 |first1=Bjorn |last1=Grüning |first2= |last2=the Bioconda Team |title=Bioconda: A sustainable and comprehensive software distribution for the life sciences |date=27 October 2017}} Conda also supports custom channels that can be self-hosted.{{Cite web |last=shuaijunye |title=Create custom Conda channel for package management - Azure Synapse Analytics |url=https://learn.microsoft.com/en-us/azure/synapse-analytics/spark/apache-spark-custom-conda-channel |access-date=2025-04-16 |website=learn.microsoft.com |language=en-us}}
See also
References
{{reflist|2}}
Further reading
- {{Citation| vauthors=((Grüning, B.)), ((Dale, R.)), ((Sjödin, A.)), ((Chapman, B. A.)), ((Rowe, J.)), ((Tomkins-Tinch, C. H.)), ((Valieris, R.)), ((Köster, J.)), ((the Bioconda Team)) |title=Bioconda: sustainable and comprehensive software distribution for the life sciences | journal = Nature Methods | volume=15 | number=7 | pages=475–476 | year=2018 | doi=10.1038/s41592-018-0046-7 | url=https://doi.org/10.1038/s41592-018-0046-7 | pmid = 29967506|s2cid=196664439 | pmc=11070151 }}
External links
- {{Official website}}
- {{GitHub|conda}}
Category:Free package management systems
Category:Free software programmed in Python