Conda 和 Anaconda 有什么区别?

What are the differences between Conda and Anaconda?

Post-问题更新:

有关详细信息,请参阅 Introduction to Conda


问题:

我第一次在 ubuntu 上安装 Anaconda ~/anaconda,当时我试图更新我的 anaconda,根据 documentation来自 Continuum Analytics,我应该使用以下命令:

conda update conda
conda update anaconda

然后我意识到我没有安装 conda,所以我使用 here.

的文档安装了它

安装conda后,当我运行conda update anaconda时,出现如下错误:

Error: package 'anaconda' is not installed in /home/xiang/miniconda

看来 conda 假设我的 anaconda 安装在 /home/xiang/miniconda 下,这是 NOT true.

题目:

  1. condaanaconda有什么区别?
  2. 我如何知道 conda 我的 anaconda 安装在哪里?

conda 是包管理器。 Anaconda 是一组大约一百个包,包括 conda、numpy、scipy、ipython notebook 等。

您安装了 Miniconda,它是 Anaconda 的较小替代品,它只是 conda 及其依赖项,而不是上面列出的那些。

有了 Miniconda 后,您可以使用 conda install anaconda 轻松地将 Anaconda 安装到其中。

简介

conda 既是命令行工具,又是 python 包。

Miniconda 安装程序 = Python + conda

Anaconda 安装程序 = Python + conda + 元数据包 anaconda

meta Python pkg anaconda = 大约 160 个其他 Python 数据科学日常使用的包

Anaconda 安装程序 = Miniconda 安装程序 + conda install anaconda

详情

conda 是环境管理器和包管理器。它指的是工具本身。 conda 可以

  • 使用 conda install flake8
  • 安装包
  • 使用 conda create -n myenv python=3.6
  • 使用任何版本的 Python 创建环境

conda不是二进制命令,是Python包。要使 conda 工作,您必须创建一个 Python 环境并将软件包 conda 安装到其中。这就是 Anaconda 安装程序和 Miniconda 安装程序的用武之地。

安装程序 Minoconda 安装 Python 和软件包 conda。安装程序 Anaconda 不仅做 Miniconda 做的事,它还为你安装一个名为 anacondameta Python 包。

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

pkg anaconda 中包含的实际 160+ python 个软件包在其 source file.

中的 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
        # ...

从以上信息可以看出,meta pkg anaconda 中的预装包主要用于网络抓取和数据科学。比如requestsbeautifulsoupnumpynltk

如果您安装了 Miniconda,conda install anaconda 将使其与 Anaconda 安装相同,只是安装文件夹名称不同。