473 votes

Suppression de l'environnement Conda

Je veux supprimer un certain environnement créé avec conda. Comment puis-je y parvenir ? Disons que j'ai un environnement testenv actif. J'ai essayé, en suivant documentation avec :

$ conda env remove

CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again

Je le désactive ensuite :

$ source deactivate

J'essaie à nouveau d'exécuter la commande pour le supprimer et j'obtiens toujours la même erreur. Qu'est-ce qui ne va pas ici ?

3 votes

Assurez-vous que vous exécutez le terminal en tant qu'administrateur, sinon les commandes s'exécuteront sans erreur mais env ne sera pas supprimé.

1 votes

avez-vous essayé : conda env remove -n ENV_NAME ?

635voto

holdenweb Points 3632

Vous n'avez probablement pas complètement désactivé l'environnement Conda - rappelez-vous que la commande à utiliser avec Conda est la suivante conda deactivate (pour les anciennes versions, utilisez source deactivate ). Il peut donc être judicieux de démarrer un nouveau shell et d'activer l'environnement dans celui-ci avant d'essayer. Ensuite, désactivez-le.

Vous pouvez utiliser la commande

conda env remove -n ENV_NAME

pour supprimer l'environnement portant ce nom. ( --name est équivalent à -n )

Notez que vous pouvez également placer des environnements où vous voulez en utilisant -p /path/to/env au lieu de -n ENV_NAME lors de la création et de la suppression d'environnements, si vous le souhaitez. Ils ne ont pour vivre dans votre installation Conda.

UPDATE, 30 Jan 2019 : À partir de Conda 4.6, le conda activate devient le nouveau moyen officiel d'activer un environnement sur toutes les plateformes. Les changements sont décrits dans cet article du blog d'Anaconda

0 votes

Vous avez raison, j'ai fait une erreur en écrivant le post. Je voulais dire source deactivate . Merci.

5 votes

En fait, vous pouvez utiliser conda deactivate également et cela fonctionne de la même manière. Au moins dans la version 4.4.11.

0 votes

Merci. Mais pas seulement deactivate par elle-même, n'est-ce pas ?

147voto

Renato Damas Points 308

Après s'être assuré que votre environnement n'est pas actif, tapez :

$ conda env remove --name ENVIRONMENT

4 votes

Voici l'information dont j'avais besoin. Cela aurait été bien si conda env --help l'avait donné.

0 votes

EnvironmentLocationNotFound: Not a conda environment: /home/user/.conda/envs/ENVIRONMENT

2 votes

J'ai soumis un bogue concernant l'impossibilité de mettre à jour le texte d'aide, et il a été marqué comme un problème facile pour les débutants, donc il y a un espoir de correction.

62voto

Harvey Points 407

Documentation officielle La méthode a fonctionné pour moi :

conda remove --name myenv --all

Ou juste conda env remove --name myenv .

Pour vérifier que l'environnement a été supprimé, dans votre fenêtre de terminal ou dans une invite Anaconda, exécutez :

conda info --envs

La liste des environnements qui s'affiche ne doit pas montrer l'environnement supprimé.

Votre dossier d'environnements anaconda3 pourrait lister un dossier vide d'environnement supprimé dans votre dossier d'installation anaconda3, comme par exemple :

/opt/anaconda3/envs

1 votes

Cela devrait être la réponse acceptée.

34voto

Simba Points 2959

Il y a 3 façons d'y parvenir au total. En supposant que vous avez un environnement nommé myenv ,

  1. conda env remove --name myenv , -n est un raccourci pour --name .

  2. conda remove --name myenv --all .

  3. Supprimez directement le dossier env. (Non recommandé)

    # list environments and their locations
    conda env list
    # or
    # conda info --envs
    
    # delete the folder listed
    rm -rf /Users/username/.local/share/conda/envs/myenv

Si vous voulez supprimer l'environnement sans invite pour vous permettre de vérifier à nouveau. Utilisez -y , raccourci pour --yes . (Pour une utilisation globale, vérifiez message silencieux en conda )

conda env remove -n myenv -y
conda remove -n myenv --all -y

Références

  • conda env --help
  • conda remove --help

7 votes

Et pourquoi la suppression directe du dossier env n'est-elle pas recommandée ? Qu'est-ce qui pourrait mal se passer ?

1 votes

@NoName Conda fournit aux paquets un événement de pré-liaison pouvant être accroché, déclenché avant la suppression du paquet. La suppression directe permet d'éviter cet événement. AFAICT, il est rarement utilisé et gère principalement des choses internes à l'environnement (par exemple, un fichier Jupyter). extension se désenregistrera avec l'instance de Jupyter à travers de tels crochets), donc tout effacer ne devrait pas casser les choses. Cependant, La recherche a permis de trouver quelques paquets (par exemple, les paquets liés à FSL) qui semblent s'enregistrer à l'extérieur, auquel cas la suppression manuelle pourrait laisser des références pendantes.

14voto

Vous devez d'abord désactiver votre environnement avant de le supprimer. Vous pouvez supprimer l'environnement conda en utilisant la commande suivante

Supposons que le nom de votre environnement soit "sample_env" , vous pouvez supprimer cet environnement en utilisant

source deactivate    
conda remove -n sample_env --all

--all' sera utilisé pour supprimer toutes les dépendances.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X