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.