375

In the Anaconda repository, there are two types of installers:

"Anaconda installers" and "Miniconda installers".

What are their differences?

Besides, for an installer file, Anaconda2-4.4.0.1-Linux-ppc64le.sh, what does 2-4.4.0.1 stand for?

Penny Liu
  • 15,447
  • 5
  • 79
  • 98
user288609
  • 12,465
  • 26
  • 85
  • 127
  • 2
    Does this answer your question? [mini conda vs anaconda - installing environments best practice question](https://stackoverflow.com/questions/61153748/mini-conda-vs-anaconda-installing-environments-best-practice-question) – Channa Apr 12 '22 at 20:08
  • hi there - many thanks for the answer. convinced. I will install it via a good installer on my system. endeavour-os – thannen Oct 02 '22 at 21:58

7 Answers7

518

Per the original docs:

Choose Anaconda if you:

  • Are new to conda or Python
  • Like the convenience of having Python and over 1500 scientific packages automatically installed at once
  • Have the time and disk space (a few minutes and 3 GB), and/or
  • Don’t want to install each of the packages you want to use individually.

Choose Miniconda if you:

  • Do not mind installing each of the packages you want to use individually.
  • Do not have time or disk space to install over 1500 packages at once, and/or
  • Just want fast access to Python and the conda commands, and wish to sort out the other programs later.

I use Miniconda myself. Anaconda is bloated. Many of the packages are never used and could still be easily installed if and when needed.

Note that Conda is the package manager (e.g. conda list displays all installed packages in the environment), whereas Anaconda and Miniconda are distributions. A software distribution is a collection of packages, pre-built and pre-configured, that can be installed and used on a system. A package manager is a tool that automates the process of installing, updating, and removing packages.

Anaconda is a full distribution of the central software in the PyData ecosystem, and includes Python itself along with the binaries for several hundred third-party open-source projects. Miniconda is essentially an installer for an empty conda environment, containing only Conda, its dependencies, and Python. Source.

Once Conda is installed, you can then install whatever package you need from scratch along with any desired version of Python.

2-4.4.0.1 is the version number for your Anaconda installation package. Strangely, it is not listed in their Old Package Lists.

In April 2016, the Anaconda versioning jumped from 2.5 to 4.0 in order to avoid confusion with Python versions 2 & 3. Version 4.0 included the Anaconda Navigator.

Release notes for subsequent versions can be found here.

LICENSE NOTE: The company behind Anaconda updated their Terms of Service in 2020 to prohibit commercial usage for most uses. You are NOT permitted to use Anaconda or Miniconda in a business with more than 200 employees, unless you acquire licenses. Please review the current license terms here.

Alexander
  • 105,104
  • 32
  • 201
  • 196
  • 3
    As a follow up question. Given `conda` takes such a long time to install packages and that `anaconda` comes with all of these extra packages, wouldn't then `anaconda` give you "faster access to Python" and other packages than `miniconda`? I'm using `miniconda` right now, but gosh it is so slow. – mimoralea Oct 11 '18 at 16:50
  • 4
    Follow up questions should always be posted as a _new_ question. Once you install all the packages with conda, you need to constantly refresh packages you don't need which in my view is more of a hassle than just installing and updating the packages that one uses. Also, miniconda is not slow. In fact, installing a subset of packages is faster than installing everything. – Alexander Oct 11 '18 at 16:52
  • 5
    `2` isn't part of the version, it's part of the name of Anaconda: In `Anaconda2-4.4.0.1-Linux-ppc64le.sh` we find version 4.4.0.1 of Anaconda2 (for Linux running on Little Endian 64-bit PowerPC). – David Jones Aug 16 '19 at 13:02
  • 1
    But I can't figure out if anaconda and/or miniconda are also allowed for commercial use? Anaconda offers an "individual edition" and a "team edition" but in the license I cannot read that the "individual edition" is prohibited for use in production environments? – the hand of NOD Jun 22 '20 at 13:34
  • 3
    @thehandofNOD you can use it for production. As redhat, ubuntu, etc. They provide commercial support and other perks. But the base thing is for free. – tupui Nov 20 '20 at 10:59
  • I just installed Anaconda 3 on my Mac and it uses about 620 MB, not 3 GB. Just an update to the main answer. – Stefano Jul 10 '22 at 03:06
  • @Stefano True, but they still haven't changed that fact on Anaconda's page describing the difference https://conda.io/projects/conda/en/latest/user-guide/install/download.html#anaconda-or-miniconda – Alexander Jul 12 '22 at 05:18
  • About the few edits going on recently regarding the licence changes. Miniconda is NOT free to use either, it's using anaconda repositories that are not permitting commercial usage. There is a very narrow exception to allow downloading the miniconda installer but that doesn't lift other restrictions that you will run into when using miniconda. Tread carefully! – user5994461 Dec 11 '22 at 14:17
  • @user5994461 Please note that questions regarding copyright or licensing are off topic for Stack Overflow. I'm happy to throw a footnote in my original answer regarding the change in licensing terms, but this is outside the scope of the OP's original question. Furthermore, it is not our job to police licensing terms or interpret them, which is why I added a link to the source for those who would like to learn more. https://stackoverflow.com/help/on-topic – Alexander Dec 11 '22 at 19:51
  • 1
    the footnote is reasonable as it is now. apologies for the multiple edits. the licence terms have changed unilaterally and it affects questions/answers falsely representing that the anaconda ecosystem is free to use or omitting to represent that it is not free to use (it was before 2020). stack overflow is not ideal to deal with licence changes unfortunately :( – user5994461 Dec 12 '22 at 11:01
205

The difference is that miniconda is just shipping the repository management system. So when you install it there is just the management system without packages. Whereas with Anaconda, it is like a distribution with some built in packages.

Like with any Linux distribution, there are some releases which bundles lots of updates for the included packages. That is why there is a difference in version numbering. If you only decide to upgrade Anaconda, you are updating a whole system.

EDIT there are new options now for on the package management side. mamba can be used as a drop in replacement for conda. It has a faster solver and is a complete re-write in C++. The solver is actually experimentally available in conda with --experimental-solver=libmamba. Keywords to look for if you want to learn more: mamba, mambaforge, micromamba.

tupui
  • 5,738
  • 3
  • 31
  • 52
  • 16
    Miniconda isn't just shipping the repository management system. Python comes shipped with it, and some other packages too. You can check by running `conda list` right after having installed Miniconda. – mjbeyeler Jun 25 '19 at 12:07
  • @Michael sure it creates a `root` environment and prepends it with stuff. – tupui Jun 25 '19 at 12:09
  • 1
    For anyone reading this now. There is `mamba` and alike now. I advise everyone to try and use this as a drop in replacement. It's fast, lite and open source. – tupui Jun 30 '22 at 15:17
  • well - i want to install this on a endavour-os - can i do this with the according commands !? – thannen Oct 02 '22 at 21:43
  • hi there - many thanks for the hint - well i will have a closer look at Mamba - is it new - i will have a closer look and will see if i can install it on my linux-notebook – thannen Oct 02 '22 at 22:00
110

Brief

conda is both a command line tool, and a python package. A command line tool written in Python, to manage packages (not only Python packages).

Miniconda installer = Python + conda

Anaconda installer = Python + conda + meta package anaconda

meta Python pkg anaconda = about 160 Python pkgs for daily use in data science

Anaconda installer = Miniconda installer + conda install anaconda

Detail

  1. conda is a python manager and an environment manager, which makes it possible to

    • install package with conda install flake8
    • create an environment with any version of Python with conda create -n myenv python=3.6
  2. Miniconda installer = Python + conda

    conda, the package manager and environment manager, is a Python package. So Python is bundled in Miniconda installer. Cause conda distribute Python interpreter with its own libraries/dependencies but not the existing ones on your operating system, other minimal dependencies like openssl, ncurses, sqlite, etc are installed as well.

    Basically, Miniconda is just conda and its minimal dependencies. And the environment where conda is installed is the "base" environment, which is previously called "root" environment.

  3. Anaconda installer = Python + conda + meta package anaconda

  4. meta Python package anaconda = about 160 Python pkgs for daily use in data science

    Meta packages, are packages that do NOT contain actual softwares and simply depend on other packages to be installed.

    Download an anaconda meta package from Anaconda Cloud and extract the content from it. The actual 160+ packages to be installed are listed in info/recipe/meta.yaml.

    package:
        name: anaconda
        version: '2019.07'
    build:
        ignore_run_exports:
            - '*'
        number: '0'
        pin_depends: strict
        string: py36_0
    requirements:
        build:
            - python 3.6.8 haf84260_0
        is_meta_pkg:
            - true
        run:
            - alabaster 0.7.12 py36_0
            - anaconda-client 1.7.2 py36_0
            - anaconda-project 0.8.3 py_0
            # ...
            - beautifulsoup4 4.7.1 py36_1
            # ...
            - curl 7.65.2 ha441bb4_0
            # ...
            - hdf5 1.10.4 hfa1e0ec_0
            # ...
            - ipykernel 5.1.1 py36h39e3cac_0
            - ipython 7.6.1 py36h39e3cac_0
            - ipython_genutils 0.2.0 py36h241746c_0
            - ipywidgets 7.5.0 py_0
            # ...
            - jupyter 1.0.0 py36_7
            - jupyter_client 5.3.1 py_0
            - jupyter_console 6.0.0 py36_0
            - jupyter_core 4.5.0 py_0
            - jupyterlab 1.0.2 py36hf63ae98_0
            - jupyterlab_server 1.0.0 py_0
            # ...
            - matplotlib 3.1.0 py36h54f8f79_0
            # ...
            - mkl 2019.4 233
            - mkl-service 2.0.2 py36h1de35cc_0
            - mkl_fft 1.0.12 py36h5e564d8_0
            - mkl_random 1.0.2 py36h27c97d8_0
            # ...
            - nltk 3.4.4 py36_0
            # ...
            - numpy 1.16.4 py36hacdab7b_0
            - numpy-base 1.16.4 py36h6575580_0
            - numpydoc 0.9.1 py_0
            # ...
            - pandas 0.24.2 py36h0a44026_0
            - pandoc 2.2.3.2 0
            # ...
            - pillow 6.1.0 py36hb68e598_0
            # ...
            - pyqt 5.9.2 py36h655552a_2
            # ...
            - qt 5.9.7 h468cd18_1
            - qtawesome 0.5.7 py36_1
            - qtconsole 4.5.1 py_0
            - qtpy 1.8.0 py_0
            # ...
            - requests 2.22.0 py36_0
            # ...
            - sphinx 2.1.2 py_0
            - sphinxcontrib 1.0 py36_1
            - sphinxcontrib-applehelp 1.0.1 py_0
            - sphinxcontrib-devhelp 1.0.1 py_0
            - sphinxcontrib-htmlhelp 1.0.2 py_0
            - sphinxcontrib-jsmath 1.0.1 py_0
            - sphinxcontrib-qthelp 1.0.2 py_0
            - sphinxcontrib-serializinghtml 1.1.3 py_0
            - sphinxcontrib-websupport 1.1.2 py_0
            - spyder 3.3.6 py36_0
            - spyder-kernels 0.5.1 py36_0
            # ...
    

    The pre-installed packages from meta pkg anaconda are mainly for web scraping and data science. Like requests, beautifulsoup, numpy, nltk, etc.

    If you have a Miniconda installed, conda install anaconda will make it same as an Anaconda installation, except that the installation folder names are different.

  5. Miniconda2 v.s. Miniconda. Anaconda2 v.s. Anaconda.

    2 means the bundled Python interpreter for conda in the "base" environment is Python 2, but not Python 3.

Simba
  • 23,537
  • 7
  • 64
  • 76
  • great - good thoughts. Well @Simba you convinced me. I want to get Anaconda. i want to install this on a endavour-os - can i do this with the according commands !? – thannen Oct 02 '22 at 21:44
23

Miniconda gives you the Python interpreter itself, along with a command-line tool called conda which operates as a cross-platform package manager geared toward Python packages, similar in spirit to the apt or yum tools that Linux users might be familiar with.

Anaconda includes both Python and conda, and additionally bundles a suite of other pre-installed packages geared toward scientific computing. Because of the size of this bundle, expect the installation to consume several gigabytes of disk space.

Source: Jake VanderPlas's Python Data Science Handbook

Bonifacio2
  • 3,405
  • 6
  • 34
  • 54
15

The 2 in Anaconda2 means that the main version of Python will be 2.x rather than the 3.x installed in Anaconda3. The current release has Python 2.7.13.

The 4.4.0.1 is the version number of Anaconda. The current advertised version is 4.4.0 and I assume the .1 is a minor release or for other similar use. The Windows releases, which I use, just say 4.4.0 in the file name.

Others have now explained the difference between Anaconda and Miniconda, so I'll skip that.

Rory Daulton
  • 21,934
  • 6
  • 42
  • 50
  • Thanks for explaining this, judging from the number, I _thought_ `Anaconda2` is the successor of `Anaconda`, which is plain wrong. – ibic Sep 03 '22 at 15:16
  • great - good thoughts. Well @Rory Daulton - many thanks for the quick answer: And yes: you convinced me. I want to get Anaconda. i want to install this on a endavour-os - can i do this with the according commands !? – thannen Oct 02 '22 at 21:44
9

Anaconda is a very large installation ~ 2 GB and is most useful for those users who are not familiar with installing modules or packages with other package managers.

Anaconda seems to be promoting itself as the official package manager of Jupyter. It's not. Anaconda bundles Jupyter, R, python, and many packages with its installation.

Anaconda is not necessary for installing Jupyter Lab or the R kernel. There is plenty of information available elsewhere for installing Jupyter Lab or Notebooks. There is also plenty of information elsewhere for installing R studio. The following shows how to install the R kernel directly from R Studio:

To install the R kernel, without Anaconda, start R Studio. In the R terminal window enter these three commands:

install.packages("devtools")
devtools::install_github("IRkernel/IRkernel")
IRkernel::installspec()

Done. Next time Jupyter is opened, the R kernel will be available.

pfabri
  • 885
  • 1
  • 9
  • 25
Gray
  • 1,164
  • 1
  • 9
  • 23
6

Both Anaconda and miniconda use the conda package manager. The chief differece between between Anaconda and miniconda,however,is that

The Anaconda distribution comes pre-loaded with all the packages while the miniconda distribution is just the management system without any pre-loaded packages. If one uses miniconda, one has to download individual packages and libraries separately.

I personally use Anaconda distribution as I dont really have to worry much about individual package installations.

A disadvantage of miniconda is that installing each individual package can take a long amount of time. Compared to that installing and using Anaconda takes a lot less time.

However, there are some packages in anaconda (QtConsole, Glueviz,Orange3) that I have never had to use. I dont even know their purpose. So a disadvantage of anaconda is that it occupies more space than needed.

  • 6
    This answer doesn't add any new information that wasn't already in [Alexander's answer](https://stackoverflow.com/a/45421527/570918). – merv May 06 '19 at 03:55
  • well honestly - i am convinced. Since i am new to Python i think that i have to install Anaconda. Well i have Endeavour-Os here running. Question: can i install Anaconda on this system too - can i do this with the Anaconda - installer. – thannen Oct 02 '22 at 21:46