conda.yaml文件:通道是什么意思,如果依赖项已经存在,为什么还需要点子?

时间:2019-04-08 07:17:17

标签: conda

我正在研究MLFlow,它使用conda来帮助设置环境和依赖项。在以下conda.yaml文件/ 1 /中,我有三个问题:

  1. 频道是什么意思?为什么需要水蟒?什么是默认频道?

  2. 在“依赖关系”部分中,有pip,pip是程序包管理工具。如果有依赖性关键字,为什么又需要点子呢? pip是否安装依赖项的依赖项。

  3. 名称:flower_classifier,是否表示环境名称是flower-classifier?

/ 1 /

name: flower_classifier
channels:
  - defaults
  - anaconda
dependencies:
  - python==3.6
  - numpy==1.14.2
  - keras==2.2.4
  - pandas
  - pip:
    - tensorflow-gpu==1.10.0
    - mlflow
    - click==6.7
    - scikit-learn
    - pillow

1 个答案:

答案 0 :(得分:1)

1个频道

这是指环境管理工具Conda将在何处查找声明的依赖项。当前,defaults频道将搜索https://repo.anaconda.com/pkgs/目录下的所有URL。 anaconda通道是此通道的子集,仅包括pkgs/mainpkgs/freepkgs/pro。由于defaults覆盖了这两个通道,因此不必同时包含这两个通道。参见the Anaconda documentation on repositories

2为什么要点子?

并非所有Python软件包都可以作为Conda软件包使用。有些可能仅通过PyPI提供,或者可能首先在PyPI中发布。通过在依赖项中包含pip,将包括该特定于Python的软件包管理器。在层次结构中pip下方列出软件包,表示应使用pip安装这些软件包。

3环境名称

是的,环境名称默认为flower_classifier。但是,如果您碰巧不成花,可以使用--name | -n标志来覆盖它。

conda env create -f conda.yaml -n my_env