Объединение conda environment.yml с pip requirements.txt

107

Я работаю со средами conda, и мне также нужны пакеты pip, например предварительно скомпилированные колеса из ~ gohlke .

На данный момент у меня есть два файла: environment.ymlдля conda с:

# run: conda env create --file environment.yml
name: test-env
dependencies:
- python>=3.5
- anaconda

и requirements.txtдля пункта, который можно использовать после активации вышеуказанной среды conda:

# run: pip install -i requirements.txt
docx
gooey
http://www.lfd.uci.edu/~gohlke/pythonlibs/bofhrmxk/opencv_python-3.1.0-cp35-none-win_amd64.whl

Есть ли возможность объединить их в один файл (для conda)?

Bastelflp
источник
2
Существует запрос на вытягивание GitHub для использования файла requirements.txt в conda. github.com/conda/conda-env/pull/172
OneCricketeer
3
conda env exportсгенерирует текст для .yml на основе установленных в данный момент пакетов.
Кенни

Ответы:

132

Зависимости Pip могут быть включены в environment.ymlфайл следующим образом ( docs ):

# run: conda env create --file environment.yml
name: test-env
dependencies:
- python>=3.5
- anaconda
- pip
- pip:
  # works for regular pip packages
  - docx
  - gooey
  # and for wheels
  - http://www.lfd.uci.edu/~gohlke/pythonlibs/bofhrmxk/opencv_python-3.1.0-cp35-none-win_amd64.whl

Он также работает для .whlфайлов в том же каталоге (см . Ответ Денгара ), а также с общими пакетами pip.

Bastelflp
источник
3
Все прошло хорошо! conda env create -f environment.yml, и environment.ymlфайл должен находиться в текущем каталоге, в противном случае будут выданы странные ошибки.
Johnny Zhang
39

Также можно использовать requirements.txtнепосредственно в YAML. Например,

name: test-env
dependencies:
  - python>=3.5
  - anaconda
  - pip
  - pip:
    - -r file:requirements.txt

По сути, любой вариант, который вы можете использоватьpip install , можно запустить в YAML. См. Пример Advanced Pip для демонстрации других возможностей.

Мерв
источник
Что -rзначит? Глядя на параметры командной строки pip ( здесь ), их нет, -rпоэтому было бы полезно знать, откуда это (и есть ли --эквивалент в
полной
3
Нашел, надо было посмотреть здесьpip install варианты . для файла требований, и более длинный эквивалент-r--requirement
dumbledad
Есть ли способ использовать YAML без conda? Или укажите версию Python, которую мы хотим, в файле требований?
Mez13,
@ Mez13, пожалуйста, задайте новый вопрос.
Мерв
13

Сразу хочу добавить, что добавление колеса в каталог тоже работает. Я получал эту ошибку при использовании всего URL:

HTTP error 404 while getting http://www.lfd.uci.edu/~gohlke/pythonlibs/f9r7rmd8/opencv_python-3.1.0-cp35-none-win_amd64.whl

Закончил загрузку колеса и сохранение его в том же каталоге, что и файл yml.

name: test-env
dependencies:
- python>=3.5
- anaconda
- pip
- pip:
  - opencv_python-3.1.0-cp35-none-win_amd64.whl
Денгар
источник
2
Я упомянул об этом в ответе выше.
bastelflp