web-dev-qa-db-fra.com

Comment libérer de l'espace disque occupé par (ana) conda?

J'utilise beaucoup le gestionnaire de paquets conda. À l'heure actuelle, j'ai pas mal d'environnements et beaucoup de paquets téléchargés prenant beaucoup de place sur mon disque SSD. Un chemin évident pour libérer une partie de cet espace consiste à utiliser la commande

conda env export > environment.yml

from https://conda.io/docs/user-guide/tasks/manage-environments.html#exporting-the-environment-file pour exporter les packages utilisés par mes anciens projets inactifs (d), puis supprimés ces environnements. Autant que je sache, cela devrait libérer une partie de l'espace dans anaconda2/envs/, mais pas dans anaconda2/pkgs/. Comment puis-je me débarrasser de ces paquets? De plus, je soupçonne qu’il pourrait rester encore quelques paquets auxquels aucun environnement n’est lié - cela pourrait-il se produire?

Des questions:

  1. En général: quel est le meilleur moyen de réduire l’espace occupé par conda?
  2. Comment me débarrasser des paquets qu'aucun environnement n'utilise plus? Comment élaguer mes paquets? Je cherche quelque chose comme Sudo apt-get autoremove sur Ubuntu/Debian.
10
Make42

Enfin, je me suis occupé de ce problème. À la fin, c’était quelques jours de travail:

  1. J'utilise PyCharm pour tous mes projets Python et avec lui, j'ai vérifié quel projet utilisait quel environnement. Pour tous les environnements, j'ai utilisé le conda env export > environment.yml pour enregistrer les paramètres de l'environnement de https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-the-environment -fichier
  2. Vérifiez si mes projets fonctionnent toujours avec de nouveaux environnements créés à partir de environment.yml.
  3. Utilisez anaconda-clean de l'option B dans https://docs.anaconda.com/anaconda/install/uninstall et placez la sauvegarde créée dans un emplacement sauvegardé.
  4. Renommez l'ancien répertoire anaconda2 en anaconda2_backup.
  5. Installez un nouvel environnement conda - miniconda3 dans mon cas.
  6. Construisez de nouveaux environnements qui sont nécessaires pour les projets en cours à partir du environment.ymls et vérifiez si ceux-ci fonctionnent.
  7. Supprimez les anciennes sauvegardes anaconda.

Enfin, j'ai également réduit mon volume logique avec https://blog.shadypixel.com/how-to-shrink-an-lvm-volume-safely/ , mais cela ne concerne que les utilisateurs de Linux utilisant des LVM.

De cette façon, j'ai pu libérer 20 à 30 Go d'espace.

0
Make42

Vous pouvez libérer de l'espace avec:

conda clean --all

clean Supprimez les packages et les caches inutilisés.

Conda utilise déjà des liens symboliques lorsque cela est possible pour les packages. Donc, pas grand chose à améliorer ici, je suppose.

Ok, merci, mais j'aimerais savoir "pas pour un environnement spécifique, mais en général" - pour tous les environnements. 

Vous pouvez lister tous les paquets dans tous les env avec quelques lignes de Python:

import os
import subprocess
for env in os.listdir('/Users/me/miniconda3/envs'):
    subprocess.call(['conda', 'list', '-n', env])
29
Mike Müller