Anaconda (Python distribution)

Last updated
Anaconda
Developer(s) Anaconda, Inc. [1] (previously Continuum Analytics) [2]
Initial release0.8.0 [3] / 17 July 2012;12 years ago (2012-07-17)
Stable release
2024.02-1 / 26 February 2024;6 months ago (2024-02-26) [4]
Written in Python
Operating system Windows, macOS, Linux
Type Programming language, machine learning, data science
License Freemium (The Individual Edition is free software, [5] but the other editions are software as a service) [6] [7] [8]
Website anaconda.com   OOjs UI icon edit-ltr-progressive.svg

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 deployment. The distribution includes data-science packages suitable for Windows, Linux, and macOS. It is developed and maintained by Anaconda, Inc., which was founded by Peter Wang and Travis Oliphant in 2012. [9] As an Anaconda, Inc. product, it is also known as Anaconda Distribution or Anaconda Individual Edition, while other products from the company are Anaconda Team Edition and Anaconda Enterprise Edition, neither of which is free. [6] [7]

Contents

Package versions in Anaconda are managed by the package management system conda . [10] This package manager was spun out as a separate open-source package as it ended up being useful on its own and for things other than Python. [11] There is also a small, bootstrap version of Anaconda called Miniconda, which includes only conda, Python, the packages they depend on, and a small number of other packages. [12]

Overview

Anaconda distribution comes with over 250 packages automatically installed, and over 7,500 additional open-source packages can be installed from PyPI as well as the conda package and virtual environment manager. It also includes a GUI, Anaconda Navigator, [13] as a graphical alternative to the command-line interface (CLI).

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 exists.

Before version 20.3, when pip installed a package, it automatically installed any dependent Python packages without checking if these conflict with previously installed packages. It would install a package and any of its dependencies regardless of the state of the existing installation. [14] Because of this, a user with a working installation of, for example, TensorFlow, could find that it stopped working having used pip to install a different package that requires a different version of the dependent numpy library than the one used by TensorFlow. In some cases, the package would appear to work but produce different results in detail. While pip has since implemented consistent dependency resolution, [14] this difference accounts for a historical differentiation of the conda package manager. [15]

In contrast, conda analyzes the current environment including everything currently installed, and, together with any version limitations specified (e.g. the user may wish to have TensorFlow version 2,0 or higher), works out how to install a compatible set of dependencies, and shows a warning if this cannot be done.

Open source packages can be individually installed from the Anaconda repository, [16] Anaconda Cloud (anaconda.org), or the user's own private repository or mirror, using the conda install command. Anaconda, Inc. compiles and builds the packages available in the Anaconda repository itself, and provides binaries for Windows 32/64 bit, Linux 64 bit and MacOS 64-bit (Intel, Apple Silicon). Anything available on PyPI may be installed into a conda environment using pip, and conda will keep track of what it has installed itself and what pip has installed.

Custom packages can be made using the conda build command, and can be shared with others by uploading them to Anaconda Cloud, [17] PyPI or other repositories.

The default installation of Anaconda2 includes Python 2.7 and Anaconda3 includes Python 3.7. However, it is possible to create new environments that include any version of Python packaged with conda. [18]

Anaconda Navigator

Anaconda Navigator Anaconda.Starting page.png
Anaconda Navigator

Anaconda Navigator is a desktop graphical user interface (GUI) included in Anaconda distribution that allows users to launch applications and manage conda packages, environments and channels without using command-line commands. Navigator can search for packages on Anaconda Cloud or in a local Anaconda Repository, install them in an environment, run the packages and update them. It is available for Windows, macOS and Linux.

The following applications are available by default in Navigator: [19]

Conda

Conda is an open source, [21] cross-platform, [22] language-agnostic [23] package manager and environment management system [24] [25] [26] that installs, runs, and updates packages and their dependencies. [21] It was created for Python programs, but it can package and distribute software for any language (e.g., R), including multi-language projects. [23] The conda package and environment manager is included in all versions of Anaconda, Miniconda, [27] and Anaconda Repository. [16]

Anaconda Cloud

Anaconda Cloud is a package management service by Anaconda where users can find, access, store and share public and private notebooks, environments, and conda and PyPI packages. [28] Cloud hosts useful Python packages, notebooks and environments for a wide variety of applications. Users do not need to log in or to have a Cloud account, to search for public packages, download and install them.

Users can build new packages using the Anaconda Client command line interface (CLI), then manually or automatically upload the packages to Cloud.

On February 13, 2024, Anaconda agreed with IBM to import its repository of Python packages into Watsonx, IBM's generative AI platform. [29]

See also

Related Research Articles

<span class="mw-page-title-main">Package manager</span> Software tools for handling software packages

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.

yum (software) Free and open-source command-line package management utility

The Yellowdog Updater Modified (YUM) is a free and open-source command-line package-management utility for computers running the Linux operating system using the RPM Package Manager. Though YUM has a command-line interface, several other tools provide graphical user interfaces to YUM functionality.

<span class="mw-page-title-main">Portage (software)</span> Gentoo package management system

Portage is a package management system originally created for and used by Gentoo Linux and also by ChromeOS, Calculate, Sabayon, and Funtoo Linux among others. Portage is based on the concept of ports collections. Gentoo is sometimes referred to as a meta-distribution due to the extreme flexibility of Portage, which makes it operating-system-independent. The Gentoo/Alt project was concerned with using Portage to manage other operating systems, such as BSDs, macOS and Solaris. The most notable of these implementations is the Gentoo/FreeBSD project.

<span class="mw-page-title-main">IRAF</span> Software collection for astronomical data reduction and data analysis

IRAF is a collection of software written at the National Optical Astronomy Observatory (NOAO) geared towards the reduction of astronomical images and spectra in pixel array form. This is primarily data taken from imaging array detectors such as CCDs. It is available for all major operating systems for mainframes and desktop computers. IRAF was designed cross-platform, supporting VMS and UNIX-like operating systems. Use on Microsoft Windows was made possible by Cygwin in earlier versions, and can be today done with the Windows Subsystem for Linux. Today, it is primarily used on macOS and Linux.

<span class="mw-page-title-main">Anaconda (installer)</span> Free and open-source system installer for Linux distributions

Anaconda is a free and open-source system installer for Linux distributions.

eric (software) Python development environment

eric is a free integrated development environment (IDE) used for computer programming. Since it is a full featured IDE, it provides by default all necessary tools needed for the writing of code and for the professional management of a software project.

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 or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".

<span class="mw-page-title-main">Fedora Linux</span> Linux distribution by Fedora Project

Fedora Linux is a Linux distribution developed by the Fedora Project. It was originally developed in 2003 as a continuation of the Red Hat Linux project. It contains software distributed under various free and open-source licenses and aims to be on the leading edge of open-source technologies. It is now the upstream source for CentOS Stream and Red Hat Enterprise Linux.

<span class="mw-page-title-main">IPython</span> Advanced interactive shell for Python

IPython is a command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers introspection, rich media, shell syntax, tab completion, and history. IPython provides the following features:

The Wing Python IDE is a family of integrated development environments (IDEs) from Wingware created specifically for the Python programming language with support for editing, testing, debugging, inspecting/browsing, and error-checking Python code.

<span class="mw-page-title-main">Python Package Index</span> Software repository

The Python Package Index, abbreviated as PyPI and also known as the Cheese Shop, is the official third-party software repository for Python. It is analogous to the CPAN repository for Perl and to the CRAN repository for R. PyPI is run by the Python Software Foundation, a charity. Some package managers, including pip, use PyPI as the default source for packages and their dependencies.

<span class="mw-page-title-main">Spyder (software)</span> IDE for scientific programming in Python

Spyder is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, including NumPy, SciPy, Matplotlib, pandas, IPython, SymPy and Cython, as well as other open-source software. It is released under the MIT license.

pip (package manager) Package management system for Python

pip is a package-management system written in Python and is used to install and manage software packages. The Python Software Foundation recommends using pip for installing Python applications and its dependencies during deployment. Pip connects to an online repository of public packages, called the Python Package Index. Pip can be configured to connect to other package repositories, provided that they comply to Python Enhancement Proposal 503.

LuaRocks is a package manager for the Lua programming language that provides a standard format for distributing Lua modules, a tool designed to easily manage the installation of rocks, and a server for distributing them. While not included with the Lua distribution, it has been called the "de facto package manager for community-contributed Lua modules".

Ansible is a suite of software tools that enables infrastructure as code. It is open-source and the suite includes software provisioning, configuration management, and application deployment functionality.

<span class="mw-page-title-main">Plotly</span> Canadian computing company

Plotly is a technical computing company headquartered in Montreal, Quebec, that develops online data analytics and visualization tools. Plotly provides online graphing, analytics, and statistics tools for individuals and collaboration, as well as scientific graphing libraries for Python, R, MATLAB, Perl, Julia, Arduino, JavaScript and REST.

Conda is an open-source, cross-platform, 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. At first, Anaconda Python distribution was developed by Anaconda Inc.; later, 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.

References

  1. "What is Anaconda, Inc.?". docs.anaconda.com. Archived from the original on 2019-03-27. Retrieved 2018-06-13. Anaconda is a software development and consulting company of passionate open source advocates based in Austin, Texas, USA. We are committed to the open source community. We created the Anaconda Python distribution and contribute to many other open source-based data analytics tools.
  2. Collison, Scott (2017-06-28). "Continuum Analytics Officially Becomes Anaconda". Anaconda Inc. corporate website. Retrieved 22 April 2020.
  3. "Release notes — Anaconda 2.0 documentation". Archived from the original on 2018-10-12. Retrieved 2017-10-26.
  4. "Release notes — Anaconda documentation".
  5. "End User License Agreement - Anaconda® Individual Edition". anaconda.com. Anaconda, Inc. Archived from the original on 14 February 2021. Retrieved 29 January 2021.
  6. 1 2 "Cover page". Anaconda Documentation. Anaconda, Inc. Retrieved 27 April 2020.
  7. 1 2 "Products and Pricing". anaconda.com. Anaconda, Inc. Retrieved 28 April 2020.
  8. "Anaconda® Terms of Service". anaconda.com. Anaconda, Inc. Retrieved 12 February 2024.
  9. "About Anaconda". Archived from the original on 19 April 2020. Retrieved 27 April 2020.
  10. "Conda – Conda documentation" . Retrieved February 25, 2016.
  11. "What's the difference between Anaconda, conda, and Miniconda?". FAQ - Bioconda documentation. Retrieved 22 April 2020.
  12. "Miniconda". conda.io. Archived from the original on 2018-09-10. Retrieved 2018-07-11.
  13. "Anaconda Navigator". docs.anaconda.com.
  14. 1 2 "User Guide - pip documentation v21.1.dev0". pip.pypa.io. Retrieved 2021-04-07.
  15. "Anaconda | Understanding Conda and Pip". Anaconda. 28 November 2018. Retrieved 2021-04-07.
  16. 1 2 "Anaconda repository". anaconda.org.
  17. "Anaconda Cloud". anaconda.org.
  18. "Managing Python with conda". conda.io. Archived from the original on 2018-06-13. Retrieved 2018-06-13.
  19. "What application can I access using navigator?". docs.anaconda.com.
  20. "The Qt Console for Jupyter". readthedocs.io.
  21. 1 2 "Conda". pydata.org. Retrieved 9 April 2015.
  22. "Building Conda Packages for Multiple Operating Systems". Pydannt. 29 January 2015. Retrieved 9 April 2015.
  23. 1 2 Doig, Christine (21 May 2015). "Conda for Data Science". Archived from the original on 16 June 2015. Retrieved 16 Jun 2015. Conda works with Linux, OSX, and Windows, and is language agnostic, which allows us to use it with any programming language or even multi-language projects.
  24. Gorelick (Author), Micha; Ozsvald, Ian (September 2014). High Performance Python: Practical Performant Programming for Humans (1st ed.). O'Reilly Media. p. 370. ISBN   978-1449361594.{{cite book}}: |last1= has generic name (help)
  25. Jackson, Joab (Feb 5, 2013). "Python gets a big data boost from DARPA". networkworld. Retrieved October 30, 2014.
  26. Lorica, Ben (March 24, 2013). "Python data tools just keep getting better". O'Reilly Radar. Retrieved October 30, 2014.
  27. "Miniconda". conda.io. Archived from the original on 2018-09-10. Retrieved 2018-06-13.
  28. Mathur, Natasha (9 August 2018). "Share projects and environment on Anaconda cloud [Tutorial]". Packt Hub.
  29. "Anaconda Partners with IBM watsonx to Deliver Enterprise Scale AI Solutions".