conda.файл yaml: что означает канал и зачем нужен pip, если зависимости уже существуют?

#conda

#conda

Вопрос:

Я изучаю MLflow, который использует conda для помощи в настройке сред и зависимостей. В следующем conda.файл yaml / 1/, у меня есть три вопроса:

  1. Что означает channel? Зачем нужна anaconda? Что такое канал по умолчанию?

  2. В разделе зависимостей есть pip, pip — это инструмент управления пакетами. Если есть ключевое слово dependencies, зачем снова нужен 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:

1 Каналы

Это относится к тому, где Conda, инструмент управления средой, будет искать объявленные зависимости. В настоящее время defaults канал будет искать все URL-адреса в https://repo.anaconda.com/pkgs / каталог. anaconda Канал является подмножеством этого, которое включает только pkgs/main , pkgs/free и pkgs/pro . Нет необходимости включать оба этих канала, поскольку defaults они охватывают их оба. Смотрите Документацию Anaconda по репозиториям.

2 Почему pip?

Не все пакеты Python доступны как пакеты Conda. Некоторые могут быть доступны только через PyPI или могут быть выпущены там первыми. При включении pip в зависимости будет включен менеджер пакетов, специфичный для Python. Список пакетов ниже pip в иерархии указывает, что pip следует использовать для установки этих пакетов.

3 Имя среды

Да, имя среды будет flower_classifier по умолчанию. Однако --name | -n флаг можно использовать для переопределения этого, если вам не нравятся цветы.

 conda env create -f conda.yaml -n my_env
  

Комментарии:

1. Еще один вопрос: как пользователь может узнать, какой пакет Python включен в пакет Conda, который не включен?

2. @user84592 Вы можете выполнить поиск в облаке Anaconda. Например, при поиске «click» вы можете увидеть, что это не обязательно устанавливать из PyPI.

3. @user84592 также может стоить отметить, что вы можете использовать conda search click , но это только для поиска каналов, которые вы добавили (или добавили с -c <channel> флагом).

4. Как сгенерировать файл yaml?

5. @Catbuilts Используется conda env export > environment.yml для создания файла yaml для текущей активной среды.