Software:Conda (package manager)

From HandWiki
Short description: Package manager and environment management system
Conda
Conda logo.svg
Written inPython
LicenseBSD

Conda is an open-source,[1] cross-platform,[2] 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.[3][4] At first part of Anaconda Python distribution developed by Anaconda Inc. Later, it was spun out as a separate package,[5] released under the BSD license.[1][6][7][8][9][10] The Conda package and environment manager is included in all versions of Anaconda, Miniconda,[11] and Anaconda Repository.[12] Conda is a NumFOCUS affiliated project.[13]

Features

Conda allows users to 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,[14] 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.[15][16]

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. In versions of Pip released prior to version 20.3,[17][18] Pip installs all Python package dependencies required, whether or not those conflict with other packages previously installed. So a working installation of, for example, Google TensorFlow will 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 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 they want to do 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

References

  1. 1.0 1.1 "Conda". https://conda.io/. Retrieved 11 June 2019. 
  2. "Building Conda Packages for Multiple Operating Systems". Pydannt. 29 January 2015. https://www.pydanny.com/building-conda-packages-for-multiple-operating-systems.html. Retrieved 11 June 2019. 
  3. Gorelick, Micha; Ozsvald, Ian (September 2014). High Performance Python: Practical Performant Programming for Humans (1st ed.). O'Reilly Media. pp. 370. ISBN 978-1449361594. 
  4. Jackson, Joab (5 February 2013). "Python gets a big data boost from DARPA". networkworld. http://www.networkworld.com/article/2163350/application-performance-management/python-gets-a-big-data-boost-from-darpa.html. Retrieved October 30, 2014. 
  5. "What's the difference between Anaconda, conda, and Miniconda?". https://bioconda.github.io/contributor/faqs.html#conda-anaconda-minconda. Retrieved 22 April 2020. 
  6. "State of Conda, Oct. 2014". Pen and Pants. 9 October 2014. http://penandpants.com/2014/10/09/state-of-conda-oct-2014/. Retrieved 9 April 2015. 
  7. Tony Ojeda; Sean Patrick Murphy; Benjamin Bengfort; Abhijit Dasgupta (25 September 2014). Practical Data Science Cookbook. Packt Publishing Ltd. ISBN 978-1783980253. https://books.google.com/books?id=E5efBAAAQBAJ&q=%22continuum.io%22&pg=PT63. Retrieved 19 March 2015. 
  8. Langtangen, Hans Petter (2014). A Primer on Scientific Programming with Python. Springer. ISBN 978-3642549595. https://books.google.com/books?id=GPUuBAAAQBAJ&q=continuum&pg=PA827. Retrieved 19 March 2015. 
  9. Yves Hilpisch (11 December 2014). Python for Finance: Analyze Big Financial Data. O'Reilly Media. ISBN 9781491945391. https://books.google.com/books?id=E93SBQAAQBAJ&q=continuum&pg=PA28. Retrieved 19 March 2015. 
  10. "Continuum Analytics Launches Anaconda Server for Enterprise Package Management". Yahoo Finance. 30 January 2014. https://finance.yahoo.com/news/continuum-analytics-launches-anaconda-server-140000663.html. Retrieved 19 March 2015. 
  11. "Miniconda". https://conda.io/docs/glossary.html#miniconda-glossary. 
  12. "Anaconda repository". https://anaconda.org/anaconda/repo. 
  13. "NumFOCUS Affiliated Projects". NumFOCUS. https://numfocus.org/sponsored-projects/affiliated-projects. 
  14. "3. Managing Python". 2015. http://conda.pydata.org/docs/test-drive.html#managing-python. "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..." 
  15. Bioconda official website.
  16. Grüning, Bjorn; the Bioconda Team (27 October 2017). "Bioconda: A sustainable and comprehensive software distribution for the life sciences". bioRxiv 10.1101/207092.
  17. "Pip Release Notes 20.3". https://pip.pypa.io/en/stable/news/#id48. 
  18. "Changelog - Pip Documentation". https://pip.pypa.io/en/stable/news/#id48. 

Further reading


External links