Comment renommer un environnement conda?

284

J'ai un environnement conda nommé old_name, comment puis-je changer son nom new_namesans casser les références?

pkowalczyk
la source
Voir aussi ce post sur la façon de cloner un environnement
conda

Réponses:

458

Tu ne peux pas.

Une solution consiste à créer un environnement de clonage, puis à supprimer celui d'origine:

(n'oubliez pas de désactiver l'environnement actuel avec deactivateWindows et source deactivatemacOS / Linux)

conda create --name new_name --clone old_name
conda remove --name old_name --all # or its alias: `conda env remove --name old_name`

Il y a plusieurs inconvénients à cette méthode:

  1. il retélécharge les paquets - vous pouvez utiliser le --offlinedrapeau pour le désactiver,
  2. le temps consacré à la copie des fichiers de l'environnement,
  3. utilisation temporaire de double disque.

Il existe un problème ouvert demandant cette fonctionnalité.

pkowalczyk
la source
90
booooo pourquoi ne peut-on pas renommer un conda env?
Charlie Parker
6
afin de laisser un peu de travail à ceux qui bifurquent du conda et ainsi leur faire comprendre beaucoup plus en cours de route: P: D
Saravanabalagi Ramachandran
3
Une autre façon consiste à cloner l'environnement, conda create --name new_name --clone old_namepuis vous pouvez supprimer l'ancien.
Y0da
4
Un mot d'avertissement - j'ai essayé de faire cela et j'ai rencontré des erreurs bizarres - mon .bashrcne fonctionnait plus, et essayer d'exécuter pytestéchouerait, essayant de référencer l'environnement maintenant supprimé. J'ai essayé de nouveaux obus et j'ai redémarré sans succès. J'ai fini par souffler le nouvel environnement, puis il suffit de commencer par une installation propre. Plus lent, mais semble réellement fonctionner maintenant.
dwanderson
3
@dwanderson +5000 car j'allais essayer d'utiliser cette réponse, mais à la place, je vais juste retirer le bandaid et recréer mon env mal nommé à partir de zéro.
bgoodr
13

Sur la base du commentaire utile de dwanderson , j'ai pu le faire dans un one-liner Bash:

conda create --name envpython2 --file <(conda list -n env1 -e )

Mon env mal nommé était "env1" et le nouveau que je souhaite cloner est "envpython2".

bgoodr
la source
1
Ran dans une erreur disant PackagesNotFoundError: The following packages are not available from current channelsavec ce script. Ce script ne fonctionne probablement que lorsque vous n'avez pas de packages installés avec pip et qui ne sont pas disponibles dans conda dans l'environnement existant?
Yuxuan Chen
-41

Ouvrez simplement le dossier "\ Anaconda \ envs" et renommez-le.

Avant de renommer avant de renommer

Après le renommage après avoir renommé

mengLV LI
la source
13
Cette réponse casse jupyter. Jupyter signale "chemin introuvable" lors de la tentative de lancement du noyau python.
MD004
5
Il y a un énorme risque de briser l'environnement
FabienP
2
Ne faites pas cela.
BenP
c'est une mauvaise idée - il y a des fichiers dans le répertoire env / name qui contiennent le chemin absolu vers ce répertoire. Si vous déplacez le répertoire, le chemin ne fonctionnera plus car il pointe vers l'ancien répertoire qui n'existe plus: envs / ds_tensorflow / Lib / site-packages / sipconfig.py: 'default_bin_dir': 'C: / Users / me / miniconda3 / envs / ds_tensorflow ', envs / ds_tensorflow / Lib / site-packages / sipconfig.py:' default_mod_dir ':' C: / Users / me / miniconda3 / envs / ds_tensorflow \\ Lib \\ site-packages ',
Donald S