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?

Amelio Vazquez-Reina
la source

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)

Aron Ahmadia
la source
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

Gabriel Fair
la source
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.

asmeureur
la source
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
mmann1123
la source
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