Conda: установка / обновление прямо с github

112

Могу ли я устанавливать / обновлять пакеты с GitHub с помощью conda ?

Например, с помощью pipя могу:

pip install git+git://github.com/scrappy/scrappy@master

установить scrappyпрямо из masterветки в GitHub. Могу ли я сделать что-то подобное с conda?

Если это невозможно, имеет ли смысл устанавливать pip с помощью conda и управлять такими локальными установками с помощью pip?

Амелио Васкес-Рейна
источник

Ответы:

74

Сейчас для этого есть лучшая поддержка conda-env. Например, теперь вы можете:

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip:
     - "--editable=git+https://github.com/pythonforfacebook/facebook-sdk.git@8c0d34291aaafec00e02eaa71cc2a242790a0fcc#egg=facebook_sdk-master"

Он по-прежнему вызывает pip изнутри, но теперь вы можете объединить спецификации пакетов conda и pip в одном environment.ymlфайле.

Если вы хотите обновить корневую среду с этим файлом, вам нужно будет сохранить это в файл (например, environment.yml), а затем выполнить команду: conda env update -f environment.yml.

Более вероятно, что вы захотите создать новую среду:

conda env create -f environment.yml (изменено как положено в комментариях)

Арон Ахмадиа
источник
Как вы устанавливаете требования из этой среды в корневую среду?
hobs
@hobs - Я отредактировал ответ, чтобы ответить на ваш вопрос.
Арон Ахмадиа 01
1
Это на самом деле conda env create -f environment.yml, с флагом означает . conda create-f--force
Perfi
1
Это где-то задокументировано?
guilhermecgs
1
@Perfi, моя ошибка , я думал , что вы предположить , что -fв conda env createупомянутых сил, а не conda create, моя ошибка за тщательно не читать.
Will
104

Ответы устарели. Вам просто нужно установить pip и git. Затем вы можете использовать pip как обычно:

  1. Активируйте среду conda source activate myenv

  2. conda install git pip

  3. pip install git+git://github.com/scrappy/scrappy@master

Габриэль Фэйр
источник
4
В дополнение к этому вы должны использовать пип, который находится в ваших окружениях, например, в моем случае пип, который я использовал, был «/ home / ubuntu / anaconda3 / envs / tensorflow_p36 / bin / pip». Этот пункт появляется после того, как вы установили conda. Вы можете добавить этот каталог bin в свой $ PATH.
faizan
1
после этого установленный пакет только на masterветке? Что, если я хочу протестировать свой PR из ветки перед слиянием с мастером?
Mymozaaa
1
@AntonAndreev: спецификация поддерживает как git+gitи git+https, так и другие. Однако все примеры спецификаций показывают a .gitвсякий раз, когда указывается ветка.
merv 07
4
Большая часть уже находится в OP (с использованием pip install). Вопрос в том, как это сделать conda напрямую , что дает главный ответ.
Амелио Васкес-Рейна
29

condaне поддерживает это напрямую, потому что он устанавливается из двоичных файлов, тогда как git install будет из источника. conda buildподдерживает рецепты, созданные из git. С другой стороны, если все, что вам нужно, это быть в курсе последних и лучших пакетов, можно использовать pip внутри Anaconda или, наоборот, использовать setup.py developпротив клона git.

asmeurer
источник
Что, если с вашим пакетом связан бинарный выпуск?
Марсель Рамос,
4

Я нашел ссылку на это в выпусках condas . Теперь должно работать следующее.

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip:
     - git+https://github.com/pythonforfacebook/facebook-sdk.git
mmann1123
источник
Это не добавляет ничего, чего еще нет в ответе @AronAhmadia , что в более общем плане демонстрирует, что доступны многие параметры в обычном файле requirements.txt.
merv 07