Conda: Installation / mise à jour directement depuis github


112

Puis-je installer / mettre à niveau des packages à partir de GitHub à l'aide de conda ?

Par exemple, avec pipje peux faire:

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

pour installer scrappydirectement depuis la masterbranche dans GitHub. Puis-je faire quelque chose d'équivalent avec conda?

Si cela n'est pas possible, serait-il judicieux d'installer pip avec conda et de gérer ces installations locales avec pip?

Réponses:


74

Il y a un meilleur soutien pour cela maintenant conda-env. Vous pouvez, par exemple, maintenant faire:

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"

Il appelle toujours pip sous les couvertures, mais vous pouvez maintenant unifier vos spécifications de package conda et pip dans un seul environment.ymlfichier.

Si vous vouliez mettre à jour votre environnement racine avec ce fichier, vous devez enregistrer à un fichier (par exemple, environment.yml), puis exécutez la commande suivante : conda env update -f environment.yml.

Il est plus probable que vous souhaitiez créer un nouvel environnement:

conda env create -f environment.yml (changé comme supposé dans les commentaires)


Comment installez-vous les exigences de cet environnement dans votre environnement racine?
plaques de cuisson

@hobs - J'ai modifié la réponse pour répondre à votre question.
Aron Ahmadia

1
C'est en fait conda env create -f environment.yml, avec conda createle -fdrapeau représente --force.
Perfi

1
Est-ce documenté quelque part?
guilhermecgs

1
@Perfi, mon erreur, je pensais que vous suggériez que le -fen fait conda env createréférence à la force, et non pour conda create, mon erreur de ne pas lire attentivement.
Sera

103

Les réponses sont dépassées. Vous devez simplement conda installer pip et git. Ensuite, vous pouvez utiliser pip normalement:

  1. Activez votre environnement conda source activate myenv

  2. conda install git pip

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


4
En plus de cela, vous devez utiliser le pip qui est dans vos envs comme dans mon cas, le pip que j'ai utilisé était "/ home / ubuntu / anaconda3 / envs / tensorflow_p36 / bin / pip". Ce pip vient après l'installation de conda. Vous pouvez ajouter ce répertoire bin à votre $ PATH.
faizan

1
le package installé est-il uniquement sur la masterbranche après cela? Que faire si je souhaite tester mes relations publiques depuis une succursale avant de fusionner vers master?
Mymozaaa

1
@AntonAndreev la spécification prend en charge à la fois git+gitet git+https, plus d'autres. Cependant, tous les exemples de spécification affichent un à .gitchaque fois que vous spécifiez la branche.
merv

4
Une grande partie est déjà dans l'OP (en utilisant pip install). La question est de savoir comment le faire en utilisant conda directement , ce que fournit la réponse principale.
Amelio Vazquez-Reina le

29

condane prend pas en charge cela directement car il s'installe à partir de binaires, alors que git install proviendrait de la source. conda buildprend en charge les recettes construites à partir de git. D'un autre côté, si tout ce que vous voulez faire est de rester à jour avec le dernier et le meilleur d'un paquet, utiliser pip à l'intérieur d'Anaconda est très bien, ou alternativement, utilisez setup.py developcontre un clone git.


Que faire si votre package est associé à un binaire de version?
Marcel Ramos le

4

J'ai trouvé une référence à cela dans les numéros condas . Ce qui suit devrait maintenant fonctionner.

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

Cela n'ajoute rien qui ne soit déjà dans la réponse de @ AronAhmadia , ce qui illustre plus généralement que de nombreuses options dans un requirements.txt normal sont disponibles.
merv
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.