web-dev-qa-db-fra.com

Puis-je ajouter un canal à un environnement spécifique?

Je veux ajouter un canal conda à un environnement spécifique conda mais lorsque je l'utilise 

conda config --add channels glotzer

ce canal est maintenant disponible dans tous les environnements conda. En plus de tester une installation à partir d'un autre environnement, le fichier ~/.condarc contient les éléments suivants:

channels:
  - glotzer
  - defaults

Comment pourrais-je configurer conda pour que le canal ne soit disponible que dans un environnement spécifique?

J'ai trouvé dans la documentation de channel que pour conda> = 4.1.0, placer les chaînes au bas du ~/.condarc empêchera les chaînes ajoutées de surcharger le paquet de base.

Par défaut, conda préfère désormais les paquets d'un canal de priorité supérieure à toute version d'un canal de priorité inférieure. Par conséquent, vous pouvez maintenant mettre en toute sécurité des canaux au bas de votre liste de canaux pour fournir des paquets supplémentaires qui ne sont pas dans le canaux par défaut, et assurez-vous que ces canaux ne le seront pas remplacer le paquet de base.

Je pense que cela évitera la plupart des problèmes, sauf lorsque, dans un environnement, vous souhaitez que le package ajouté via un canal remplace un package principal.

16
Steven C. Howell

À partir de la version 4.2, les fichiers .condarc spécifiques à l'environnement sont pris en charge et vous pouvez écrire:

conda config --env --add channels glotzer

pour ajouter le canal à la configuration de l'environnement actif. 

[ Je ne sais pas si le drapeau --env a été ajouté en 4.2. Réponse basée sur conda 4.5.9 ]

15
Christopher Barber

Actuellement, il n'est pas possible d'ajouter un canal à un seul environnement conda. Si vous ne souhaitez pas ajouter de canal au fichier global ~/.condarc, vous devez utiliser l'option permettant d'installer un package à partir d'un canal spécifique: 

conda install <some-package> -c glotzer
5
Steven C. Howell

Vous pouvez créer un fichier environment.yml contenant la spécification de votre environnement conda. Les documents complets sont ici , mais la configuration de base est la suivante:

name: EnvironmentName
channels:
    - conda-forge
    - glotzer
dependencies:
    - pip:
        - tensorflow
    - pandas=0.22.*

Pour utiliser l'environnement, tapez

conda env create -f environment.yml
conda activate EnvironmentName

Pour mettre à jour l'environnement lorsque environment.yml est modifié ou que les packages sont mis à jour,

conda env update -f environment.yml
conda activate EnvironmentName
4
BallpointBen

Vous pouvez créer un nouvel environnement avec un canal spécifique:

conda create -n EnvironmentName -c ChannelName

0
Tony Shouse