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?

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)


¿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


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.


¿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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.