Conda: instalación / actualización directamente desde github

112

¿Puedo instalar / actualizar paquetes de GitHub usando conda ?

Por ejemplo, con pippuedo hacer:

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

para instalar scrappydirectamente desde la mastersucursal en GitHub. ¿Puedo hacer algo equivalente con conda?

Si esto no es posible, ¿tendría algún sentido instalar pip con conda y administrar tales instalaciones locales con pip?

Amelio Vázquez-Reina
fuente

Respuestas:

74

Hay un mejor apoyo para esto ahora conda-env. Ahora puede, por ejemplo, hacer:

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"

Todavía está llamando pip bajo las sábanas, pero ahora puede unificar las especificaciones de su paquete conda y pip en un solo environment.ymlarchivo.

Si se quiere actualizar su entorno raíz con este archivo, lo que se necesita para salvar a un archivo (por ejemplo, environment.yml), a continuación, ejecute el comando: conda env update -f environment.yml.

Es más probable que desee crear un nuevo entorno:

conda env create -f environment.yml (cambiado como se supone en los comentarios)

Aron Ahmadia
fuente
¿Cómo instala los requisitos de ese entorno en su entorno raíz?
placas
@hobs: he editado la respuesta para responder a tu pregunta.
Aron Ahmadia
1
En realidad conda env create -f environment.yml, es con conda createla -fbandera que representa --force.
Perfi
1
¿Está documentado en alguna parte?
guilhermecgs
1
@Perfi, mi error pensé que estabas sugiriendo que el -fen se conda env createrefería a la fuerza, y no por conda createmi error de no leer con atención.
Será el
103

Las respuestas están desactualizadas. Simplemente tienes que conda instalar pip y git. Entonces puedes usar pip normalmente:

  1. Activa tu entorno conda source activate myenv

  2. conda install git pip

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

Feria Gabriel
fuente
4
Además de esto, debes usar el pip que está dentro de tus entornos, como en mi caso, el pip que usé fue "/ home / ubuntu / anaconda3 / envs / tensorflow_p36 / bin / pip". Este pip viene después de realizar la instalación de conda. Puede anteponer este directorio bin a su $ PATH.
faizan
1
¿El paquete instalado solo está en la masterrama después de eso? ¿Qué pasa si me gustaría probar mi PR desde una rama antes de fusionarme con el maestro?
Mymozaaa
1
@AntonAndreev la especificación es compatible con git+gity git+https, además de otros. Sin embargo, todos los ejemplos de especificaciones muestran un .gitsiempre que se especifica la rama.
merv
4
Gran parte ya está en el OP (en uso pip install). La pregunta es cómo hacerlo usando conda directamente , que proporciona la respuesta principal.
Amelio Vazquez-Reina
29

condano admite esto directamente porque se instala desde binarios, mientras que git install sería desde la fuente. conda buildadmite recetas creadas a partir de git. Por otro lado, si todo lo que desea hacer es mantenerse actualizado con el último y mejor paquete, usar pip dentro de Anaconda está bien, o alternativamente, usarlo setup.py developcontra un clon de git.

como medidor
fuente
¿Qué pasa si su paquete tiene un binario de lanzamiento asociado?
Marcel Ramos
4

Encontré una referencia a esto en los problemas de condas . Lo siguiente debería funcionar ahora.

name: sample_env
channels:
dependencies:
   - requests
   - bokeh>=0.10.0
   - pip:
     - git+https://github.com/pythonforfacebook/facebook-sdk.git
mmann1123
fuente
Esto no agrega nada que no esté ya en la respuesta de @ AronAhmadia , que ilustra de manera más general que muchas de las opciones en un requirements.txt normal están disponibles.
merv