`setup.py`` install_requirements` в среде Conda: принудительное использование `pip` - PullRequest
0 голосов
/ 05 июня 2019

У меня есть среда conda для одного из моих проектов.Он содержит setup.py, который определяет параметр install_requirements.Конда, кажется, настаивает на использовании своих собственных каналов по всем требованиям.Некоторые из них не существуют в каталоге Conda, но, безусловно, могут быть установлены через pip.

Есть ли способ указать python setup.py install, чтобы использовать pip для этих конкретных требований?Предпочтительно внутри setup.py?

1 Ответ

0 голосов
/ 05 июня 2019

Нет, нет способа использовать pip для установки пакетов во время процесса сборки conda.Conda настаивает на использовании пакетов conda в качестве зависимостей для всех пакетов conda.На мой взгляд, это хорошее ограничение, поскольку оно гарантирует, что вы будете иметь самосогласованную среду, и до недавнего времени conda и pip не очень хорошо играли вместе.Кроме того, pip имеет свой собственный решатель зависимостей, который может предоставлять разные / несовместимые версии зависимых пакетов тем, для которых conda будет решать.

Для чистых пакетов Python генерировать пакет conda не очень сложно, иВы можете загрузить его в Conda Forge, чтобы он был общедоступным.См. веб-сайт conda-forge , на котором указано

  • Вилка conda-forge / staged-recipes
  • Создать новыйветвь из мастер-ветви staged-recipes.
  • Добавьте новый рецепт conda в каталог "recipes".Там есть пример хорошо написанного рецепта. Дальнейшие указания по написанию хороших рецептов .
  • Предложить изменение как запрос на извлечение.Ваш рецепт будет автоматически построен на Windows, Linux и OSX, чтобы проверить его работоспособность, но дистрибутив еще не будет доступен на канале conda-forge.
  • Как только рецепт будет готов, он будет объединен, и автоматически будет создан новый «исходный» репозиторий для рецепта.Процессы сборки и загрузки выполняются в сырье, и после завершения пакет будет доступен на канале conda-forge
...