2017-07-26 1 views
0

je remarquai que lorsqu'un environnement Conda est créé sans spécifier la version python:Quelle est l'utilisation des environnements anaconda non séparés?

conda create --name snowflakes 

au lieu de:

conda create --name snowflakes python=3.6 

les environnements ne sont pas séparés et partager le paquet avec l'interpréteur python par défaut.

Ensuite, à quoi servent les environnements anaconda non séparés?

EDIT - 20170824: La question a été résolue. En fait environnements non séparés n'existent pas. Avec la première commande, aucun nouvel interpréteur Python n'est installé de sorte qu'il appelle le premier qu'il trouve dans le PATH étant l'interpréteur Python standard car il n'y en a pas d'autre.

+0

Qu'entendez-vous par environnement non séparé? Lorsque vous créez un nouvel environnement, il est placé dans 'anaconda/install/dir/envs/env-name'. Il ne devrait pas y avoir de paquets partagés. Pouvez-vous donner un exemple de code qui démontre ce que vous voulez dire? – darthbith

+0

Ici: https://conda.io/docs/using/envs.html. La création d'un environnement ("standard") et d'un environnement séparé est soulignée en se tenant dans deux sections séparées et j'ai fait le test sur mon système. Lorsque nous créons un environnement non séparé, il partage tous les paquets installés avec l'interpréteur python par défaut, contrairement à un environnement séparé. – Wmog

+0

Je ne vois rien sur le partage de paquets sur ce lien. L'en-tête "Créer un environnement séparé" est juste une formulation. Il n'y a qu'un seul type d'environnement de conda, et il a toujours son propre ensemble de paquets par défaut. Pouvez-vous s'il vous plaît montrer le code que vous avez utilisé pour tester que tous les paquets sont partagés? – darthbith

Répondre

1

Je pense que vous vous méprenez sur le mot «séparé» dans les documents. Dans les docs, ils signifient "séparé" dans le sens de "créer un nouvel environnement, avec un nouveau nom pour essayer de nouvelles choses". Ils ne signifient pas que vous créez un environnement de conda différent. Il n'y a qu'un seul type d'environnement dans le conda, ce que vous appelez l'environnement "séparé". Tous les paquets dans tous les environnements sont toujours uniques. Il arrive que la première commande crée un environnement vide sans paquets. Par conséquent, lorsque le nouvel environnement est activé, la variable d'environnement PATH ressemble à: ~/miniconda3/envs/snowflakes/bin:~/miniconda3/bin:... Maintenant, puisqu'il n'y a aucun Python installé dans ~/miniconda3/envs/snowflakes/bin (parce que l'environnement snowflakes est vide), le shell trouve toujours Python dans ~/miniconda3/bin en tant que premier sur le chemin. L'environnement snowflakes ne partage pas avec l'environnement racine. Par exemple, si, après avoir créé, vous tapez conda install -n snowflakes python, il va installer une nouvelle version de Python qui ne trouvera aucun paquet! Par conséquent, il n'y a qu'un seul type d'environnement dans le conda, ce que vous appelez l'environnement «séparé».