web-dev-qa-db-fra.com

conda: supprime tous les packages installés de l'environnement de base / racine

TL: DR: Comment puis-je supprimer tous les packages installés de base?

J'ai installé de nombreux packages d'apprentissage automatique dans mon environnement base conda.

J'ai maintenant créé un environnement ml pour l'apprentissage automatique et je souhaite réinitialiser mon environnement base en supprimant tous les packages qui y sont installés.

J'ai essayé:

% activate base
% conda uninstall -n base --all

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

Apparemment, je ne peux pas supprimer les paquets de l'environnement actuel (?!), Nous allons donc passer d'abord à mon environnement ml:

% source activate ml
% conda uninstall -n base --all

CondaEnvironmentError: cannot remove root environment,
       add -n NAME or -p PREFIX option

Bon, je vais utiliser -p puis...

% conda uninstall -p ~/.local/share/miniconda3 --all

CondaEnvironmentError: cannot remove root environment,
       add -n NAME or -p PREFIX option

Comment désinstaller tous les packages installés dans l'environnement base ou root?

14
Tom Hale

Apparemment, je ne peux pas supprimer les paquets de l'environnement actuel (?!)

Ce n’est pas cela, mais vous ne pouvez pas supprimer l’environnement base, qui est ce que le --all drapeau fait. Vous ne pouvez pas désinstaller tous les packages de base car c'est là que réside l'exécutable conda. Au lieu de cela, ce que vous voulez faire est de désinstaller tous les packages installés par l'utilisateur. Pour ce faire, vous pouvez notamment rétablir l'état d'origine de votre environnement avant d'installer des packages utilisateur:

> conda install --revision 0

Vous pouvez également rechercher d'autres états antérieurs qui pourraient être moins d'une régression, mais tout de même vous débarrasser des paquets que vous pensez avoir accumulés inutilement.

> conda list -n base -r

En fin de compte, vous voudrez probablement mettre à jour conda juste après, car les modifications apportées aux packages de base seront également annulées.


Erreurs, oh mon dieu!

Bien que ce qui précède soit vraiment la bonne solution, je rencontre l'erreur:

CondaRevisionError: Impossible de revenir à 0 car :: contextlib2-0.5.3-py35_0 n'est pas dans les repodata.

Soit dit en passant, cela m'inquiète car cela semble indiquer que l'état de mon environnement de conda d'il y a deux ans n'est plus reproductible à partir de l'état des canaux en amont. J'ai travaillé sur l'hypothèse que ce type de reproductibilité est intégré.

Quoi qu'il en soit, je ne connais pas un moyen propre de résoudre ce problème autrement que de comparer tous les packages de révision 0 à votre installation actuelle, puis de désinstaller la différence.

15
merv

J'ai eu le même problème que vous, c'est ce que j'ai fait:

  1. sauvegarder mon conda-env:

    je. activer l'env je veux garder, comme 'ml'

    ii. tapez conda-env export > /path/to/save/file/environment.yml

  2. active base et rétablit la base env en initial: type conda install --revision 0, cela devrait prendre un peu de temps ... (cette commande n'a pas annulé TOUS mes envs, juste l'env. BASE)

  3. chargez votre fichier .yml: tapez conda env create -f /path/to/save/file/environment.yml

1
Aaayue