Conda: Instalando / atualizando diretamente do github

112

Posso instalar / atualizar pacotes do GitHub usando conda ?

Por exemplo, com pipeu posso fazer:

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

para instalar scrappydiretamente do masterbranch no GitHub. Posso fazer algo equivalente com conda?

Se isso não for possível, faria algum sentido instalar pip com conda e gerenciar essas instalações locais com pip?

Amelio Vazquez-Reina
fonte

Respostas:

74

Há um suporte melhor para isso agora conda-env. Você pode, por exemplo, agora fazer:

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"

Ainda está chamando pip nos bastidores, mas agora você pode unificar suas especificações de pacote conda e pip em um único environment.ymlarquivo.

Se você quiser atualizar seu ambiente de raiz com este arquivo, você precisaria para salvar a um arquivo (por exemplo, environment.yml), em seguida, executar o comando: conda env update -f environment.yml.

É mais provável que você queira criar um novo ambiente:

conda env create -f environment.yml (alterado conforme suposto nos comentários)

Aron Ahmadia
fonte
Como você instala os requisitos desse ambiente em seu ambiente raiz?
horas de
@hobs - editei a resposta para responder à sua pergunta.
Aron Ahmadia
1
Na verdade conda env create -f environment.yml, com conda createa -fbandeira significa --force.
Perfi
1
Está documentado em algum lugar?
guilhermecgs
1
@Perfi, engano meu Achei que você estava sugerindo que o -fin se conda env createreferia a força, e não por conda create, engano meu por não ler atentamente.
Será
103

As respostas estão desatualizadas. Você simplesmente precisa conda instalar o pip e o git. Então você pode usar o pip normalmente:

  1. Ative seu ambiente conda source activate myenv

  2. conda install git pip

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

Gabriel Fair
fonte
4
Além disso, você deve usar o pip que está dentro do seu envs, como no meu caso, o pip que usei foi "/ home / ubuntu / anaconda3 / envs / tensorflow_p36 / bin / pip". Este pip vem depois que você faz a instalação do conda. Você pode anexar este diretório bin ao seu $ PATH.
faizan
1
é o pacote instalado apenas no masterramo depois disso? E se eu quiser testar meu PR de uma filial antes de mesclar para o master?
Mymozaaa
1
@AntonAndreev a especificação oferece suporte a git+gite git+https, além de outros. No entanto, todos os exemplos de especificações mostram .gitsempre que está especificando o ramo.
merv
4
Grande parte já está no OP (usando pip install). A questão é saber como fazer isso usando conda diretamente , o que a principal resposta fornece.
Amelio Vazquez-Reina
29

condanão suporta isso diretamente porque ele instala a partir de binários, enquanto o git install seria da fonte. conda buildsuporta receitas que são construídas a partir do git. Por outro lado, se tudo o que você deseja fazer é se manter atualizado com o último e melhor pacote, usar pip dentro do Anaconda é bom, ou alternativamente, usar setup.py developcontra um clone git.

asmeurer
fonte
E se o seu pacote tiver um binário de lançamento associado a ele?
Marcel Ramos
4

Encontrei uma referência a isso em questões de condas . O seguinte deve funcionar agora.

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip:
     - git+https://github.com/pythonforfacebook/facebook-sdk.git
mmann1123
fonte
Isso não adiciona nada que já não esteja na resposta de @AronAhmadia , o que ilustra de forma mais geral que muitas das opções em um requirements.txt normal estão disponíveis.
merv