Объединение 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)?


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.


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.