Conda: installazione / aggiornamento direttamente da GitHub


112

Posso installare / aggiornare pacchetti da GitHub utilizzando conda ?

Ad esempio, con pipposso fare:

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

da installare scrappydirettamente dal masterramo in GitHub. Posso fare qualcosa di equivalente con conda?

Se ciò non fosse possibile, avrebbe senso installare pip con conda e gestire tali installazioni locali con pip?

Risposte:


74

C'è un supporto migliore per questo ora attraverso conda-env. Puoi, ad esempio, ora fare:

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"

Sta ancora chiamando pip sotto le coperte, ma ora puoi unificare le specifiche del pacchetto conda e pip in un unico environment.ymlfile.

Se si voleva aggiornare il vostro ambiente di root con questo file, si avrebbe bisogno di salvare questo in un file (ad esempio, environment.yml), quindi eseguire il comando: conda env update -f environment.yml.

È più probabile che tu voglia creare un nuovo ambiente:

conda env create -f environment.yml (modificato come previsto nei commenti)


Come si installano i requisiti da quell'ambiente nel proprio ambiente root?
piani cottura

@hobs - Ho modificato la risposta per rispondere alla tua domanda.
Aron Ahmadia

1
In realtà è conda env create -f environment.yml, con conda createla -fbandiera sta per --force.
Perfi

1
È documentato da qualche parte?
guilhermecgs

1
@Perfi, il mio errore ho pensato che stavano suggerendo che la -fin conda env createcui la forza, e non per conda create, il mio errore per non leggere con attenzione.
Il

103

Le risposte sono obsolete. Devi semplicemente conda installare pip e git. Quindi puoi usare pip normalmente:

  1. Attiva il tuo ambiente conda source activate myenv

  2. conda install git pip

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


4
Oltre a questo devi usare il pip che è all'interno del tuo envs come nel mio caso il pip che ho usato era "/ home / ubuntu / anaconda3 / envs / tensorflow_p36 / bin / pip". Questo pip arriva dopo aver eseguito l'installazione di conda. Puoi anteporre questa directory bin al tuo $ PATH.
faizan

1
il pacchetto installato è solo sul masterramo dopo? E se volessi testare il mio PR da un ramo prima di unirlo al master?
Mymozaaa

1
@AntonAndreev la specifica supporta sia git+gite git+https, più altri. Tuttavia, tutti gli esempi di specifiche mostrano un .gitogni volta che si specifica il ramo.
merv

4
Molto è già nell'OP (utilizzando pip install). La domanda è chiedersi come farlo utilizzando conda direttamente , che fornisce la risposta principale.
Amelio Vazquez-Reina il

29

condanon lo supporta direttamente perché si installa dai binari, mentre git install sarebbe dal sorgente. conda buildsupporta le ricette create da git. D'altra parte, se tutto ciò che vuoi fare è tenerti aggiornato con l'ultimo e il più grande di un pacchetto, usare pip all'interno di Anaconda va bene, o in alternativa, usalo setup.py developcontro un clone git.


Cosa succede se il tuo pacchetto ha un binario di rilascio associato ad esso?
Marcel Ramos

4

Ho trovato un riferimento a questo in questioni condas . Ora dovrebbe funzionare quanto segue.

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip:
     - git+https://github.com/pythonforfacebook/facebook-sdk.git

Questo non aggiunge nulla che non sia già nella risposta di @ AronAhmadia , che illustra più in generale che molte delle opzioni in un normale requirements.txt sono disponibili.
merv
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.