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?

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)


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


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.


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.