web-dev-qa-db-fra.com

Comment conda-env list / conda info --envs trouve-t-il des environnements?

J'ai expérimenté avec anaconda/miniconda parce que mes utilisateurs utilisent des programmes de biologie structurelle installés avec miniconda et aucun des auteurs A) ne tient compte du fait qu'il pourrait y avoir d'autres applications miniconda B) que leurs programmes seront utilisés dans un environnement multi-utilisateurs .

Donc, en utilisant Arch Linux, j'ai d'abord installé anaconda (version 4.5.12), puis en utilisant mon propre compte, j'ai créé quelques environnements de test:

conda create -n snakes
conda create -n sharks

J'ai ensuite (complètement) désinstallé anaconda et installé miniconda (également la version 4.5.12), puis j'ai créé un autre environnement dans un emplacement non standard en tant que root:

# conda create -p /usr/local/miniconda/pyem

Voici où les choses deviennent étranges. Lorsque je liste les environnements en tant qu'utilisateur root, je vois non seulement celui par défaut et celui que je viens de créer, mais aussi ceux que j'ai créés précédemment en utilisant mon compte utilisateur!

[root@lizard /]# conda info --envs
# conda environments:
#
                         /home/cnsit/.conda/envs/sharks
                         /home/cnsit/.conda/envs/snakes
base                  *  /opt/miniconda3
                         /usr/local/miniconda/pyem

(La commande conda-env list Donne la même sortie.)

Donc, question: comment conda trouve-t-il des environnements créés par un autre utilisateur? De plus, lorsque tout le répertoire parent de l'instance d'origine de conda a été supprimé et remplacé par un dans un emplacement entièrement différent (donc pas le fichier local environment.txt pourrait être en train de cataloguer cela.

4
pgoetz

Le code de la commande info est contenu dans la commande cli.main_info module, et le code pertinent pour ce cas est ici . Cela importe la fonction de plus ici qui (entre autres) lit la valeur de configuration envs_dirs. Vous pouvez connaître la valeur de cette valeur de configuration sur votre système en exécutant

conda config --show envs_dirs

Je m'attends à ce que cela vous montre les répertoires utilisateur des environnements en cours de recherche.

4
darthbith