2016-06-30 6 views
10

я экспортировали свою текущую активную среду сЭкспорт Конда среды с местным пип устанавливает

conda env export > environment.yml 

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

conda env create -f environment.yml 

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

+0

'' shapely' и BaseMap 'оба имеют пакеты conda, доступные в conda-forge сообщества conda. Вам может быть проще просто установить пакеты conda. – cel

+0

Я не знал этого - это довольно удобно для этих пакетов. К сожалению, мой корпоративный брандмауэр не любит conda-forge :( – user787267

ответ

8

Нет никакого способа получить его для создания записей для файла .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>, является pretty straightforward install, поэтому семантика установки с помощью 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 не должно вызывать проблемы.

1

Вот конкретный пример environment.yml, который использует URL для ссылки на файлы колесными из скомпилированных пакетов Кристофа 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 

Ссылка: https://stackoverflow.com/a/35245610/1493069