Поєднання conda environment.yml із вимогами до піп.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для pip, який можна використовувати після активації середовища вище 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файл повинен знаходитись у поточному каталозі, інакше він буде видавати дивні помилки.
Джонні Чжан,

40

Можна також використовувати 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тому було б корисно знати, звідки це (і якщо існує --еквівалент довгої форми)
dumbledad

3
Знайшов, я мав би переглянути pip installваріанти тут . -rдля файлу вимог, а довший еквівалент--requirement
dumbledad

Чи є спосіб використовувати YAML без конда? Або вказати потрібну нам версію python у файлі вимог?
Mez13

@ Mez13, будь ласка, задайте нове запитання.
merv

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.