conda: elimina todos los paquetes instalados del entorno base / root

TL: DR: ¿Cómo puedo eliminar todos los paquetes instalados desde la base ?

Instalé un montón de paquetes de aprendizaje automático en mi entorno base conda.

Ahora he creado un entorno ml para el aprendizaje automático y deseo restablecer mi entorno base eliminando todos los paquetes instalados allí.

He intentado:

 % activate base % conda uninstall -n base --all CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again 

Aparentemente, no puedo eliminar paquetes del entorno actual (?!), así que primero cambiemos a mi entorno ml :

 % source activate ml % conda uninstall -n base --all CondaEnvironmentError: cannot remove root environment, add -n NAME or -p PREFIX option 

O bien, voy a usar -p entonces …

 % conda uninstall -p ~/.local/share/miniconda3 --all CondaEnvironmentError: cannot remove root environment, add -n NAME or -p PREFIX option 

¿Cómo desinstalo todos los paquetes instalados en el entorno base o root ?

Aparentemente, no puedo eliminar paquetes del entorno actual (?!)

No es eso, sino que no puedes eliminar el entorno base , que es lo que hace el indicador --all . No puede desinstalar todos los paquetes en la base porque ahí es donde vive el ejecutable de Conda. En su lugar, lo que desea hacer es desinstalar todos los paquetes instalados por el usuario. Una forma de hacerlo es revertir su entorno al estado original antes de instalar cualquier paquete de usuario:

 > conda install --revision 0 

También puede buscar otros estados anteriores que podrían ser menos de regresión, pero aún así deshacerse de cualquier paquete que crea que ha acumulado innecesariamente.

> conda list -n base -r

Al final, probablemente querrá actualizar conda justo después, ya que también revertirá cualquier actualización a los paquetes base.


Errores, oh mi!

Si bien lo anterior es el camino correcto, me encuentro con el error:

CondaRevisionError: No se puede revertir a 0, ya que :: contextlib2-0.5.3-py35_0 no está en repodata.

Dejando de lado, esto me preocupa porque parece indicar que el estado de mi entorno de conda desde hace dos años ya no es reproducible desde el estado de los canales ascendentes. He estado trabajando bajo el supuesto de que este tipo de reproducibilidad está incorporado.

De todos modos, no conozco una forma limpia de solucionar esto, aparte de comparar todos los paquetes de la revisión 0 con su instalación actual y luego desinstalar la diferencia.

Tuve el mismo problema que tú, esto es lo que hice:

  1. copia de seguridad de mi conda-env:

    yo. activar el env que quiero mantener, como ‘ml’

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

  2. active base y revertir base env a initial: escriba conda install --revision 0 , esto debería llevar algo de tiempo … (este comando no revertió TODOS mis envs, solo el entorno BASE)

  3. cargue su archivo .yml: escriba conda env create -f /path/to/save/file/environment.yml