2015-09-30 3 views
1

Я пытаюсь использовать Conda для настройки среды тестирования & для проекта (LensKit) и необходимости иметь зависимые от платформы зависимости. В частности, в строках Linux мне нужны libgfortran и openssl, но не в Windows.Есть ли способ иметь зависимые от платформы зависимости в environment.yml?

Есть ли способ, который я могу указать в environment.yml, что мне нужно libgfortran, но только на 32- и 64-разрядных платформах Linux? Или мне нужно иметь отдельные определения среды для покрытия этого случая?

Другим потенциальным решением, которое я вижу, является создание фиктивного пакета и публикация его до http://anaconda.org, который просто зависит от необходимых базовых пакетов для каждой платформы и требует, чтобы пакет был в environment.yml.

ответ

2

«Фиктивные пакеты» на самом деле называются «метапакетами». См. http://conda.pydata.org/docs/building/meta-pkg.html. Это кажется хорошим вариантом.

В качестве альтернативы, вы могли бы построить пакет conda вашего проекта? В рецепте conda recipe meta.yml вы можете использовать селекторы для разных платформ. http://conda.pydata.org/docs/building/meta-yaml.html#preprocessing-selectors

+1

Спасибо. Было бы здорово, если бы селекторы предварительной обработки работали в 'environment.yml' тоже. –

+0

Я думаю, что 'environment.yml' чисто означает как точный дамп среды. Документы явно говорят, что это может не работать кросс-платформенно. «Meta.yml» действительно устанавливает точные требования. Вероятно, нам нужно забыть о том, что пип, и это способ установки с использованием файла требований ... – faph

Смежные вопросы