Экспорт среды conda с локальными установками pip

Я экспортировал свою текущую активную среду с помощью

conda env export > environment.yml

Это очень удобно, так как он отслеживает как пакеты, установленные как conda, так и pip. Тем не менее, у меня есть несколько пакетов (например, образцовая и базовая карта), установленные локально с помощью pip из файла .whl из компилируемых пакетов Christoph Gohlke для Windows. Когда я пытаюсь воссоздать свою среду

conda env create -f environment.yml

pip возвращает ошибку с ошибкой, так как не может найти эти пакеты в своем индексе (очевидно). Есть ли способ указать pip на этапе экспорта конды, где искать эти локальные пакеты? Файлы .whl можно считать находящимися в том же каталоге, что и файл environment.yml.

Ответ 1

Нет никакого способа заставить его автоматически создавать записи для файла .whl из того, что я знаю.

Самый простой способ заставить это работать - вручную изменить файл environment.yml и добавить файл .whl в список под - pip:. Я попробовал это, загрузив пакет .whl для nose и поместив его в тот же каталог, что и мой файл env.yml, структура выглядела так:

name: python3_test
dependencies:
- openssl=1.0.2h=1
- pip=8.1.2=py35_0
- python=3.5.1=5
- readline=6.2=2
- setuptools=23.0.0=py35_0
- sqlite=3.13.0=0
- tk=8.5.18=0
- wheel=0.29.0=py35_0
- xz=5.2.2=0
- zlib=1.2.8=3
- pip:
   - nose-1.3.7-py3-none-any.whl

Если он находится в другом каталоге, просто поставьте каталог. Путь, конечно, должен быть действительным при выпуске conda create env.

Команда pip, выпущенная при запуске conda env create -n <name> -f <file.yml>, является довольно простой установкой, поэтому семантика установки с помощью pip из командной строки должна быть похожим. Черт, вы даже можете добавить url для файла .whl в requirements.yml, и установка по-прежнему будет плавно. Снова, сохраняя остальное то же самое и используя URL для загрузки nose:

- pip:
   - https://pypi.python.org/packages/15/d8/dd071918c040f50fa1cf80da16423af51ff8ce4a0f2399b7bf8de45ac3d9/nose-1.3.7-py3-none-any.whl#md5=3135984cc9cfcbe5d9c46e166d6743b0

Использование любого URL-адреса не должно вызывать никаких проблем.

Ответ 2

Вот конкретный пример среды environment.yml, которая использует URL-адрес для ссылки на файлы колес из собранных пакетов Christoph Gohlke для Windows:

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

Ссылка: fooobar.com/info/279168/...