Quelles alternatives aux fonctionnalités payantes d'Anaconda ?
Anaconda est une distribution populaire de bibliothèques et d'outils (en Python, R…) utilisés pour le développement d'applications dédiées à la science des données et à l'apprentissage automatique (traitement de données à grande échelle, analyse prédictive, calcul scientifique). La gestion de paquets logiciels est gérée par conda.
Depuis 2020, certaines fonctionnalités sont soumises à licence. Des alternatives gratuites à ces fonctionnalités vous sont proposées.
Recommandations
Utiliser des canaux alternatifs à ceux d’Anaconda
Les canaux par défaut d'Anaconda ( pkg/main , pkgs/r , pkg/msys2 ) sont soumis à des restrictions. L'usage de conda-forge comme principal canal pour l'installation de paquets est recommandé. Ce canal est maintenu par la communauté scientifique. Vous trouverez également de nombreux outils bio-informatiques sur le canal bioconda.
Adopter Miniforge
Miniforge est une distribution légère de conda qui utilise uniquement les paquets de conda-forge. Elle offre une alternative fiable et sans contraintes aux distributions Anaconda.
Pixi est également une alternative récente et très rapide pour installer des paquets conda et gérer des environnements logiciels.
Désactiver le canal « defaults » dans conda
Pour éviter les restrictions, configurez conda en désactivant le canal « defaults » et en activant conda-forge. Ajoutez l'option nodefaults dans la configuration de vos environnements conda. Par exemple :
conda config --env --add channels nodefaults
conda config --env --add channels conda-forge
conda config --env --set channel_priority strictQue faire avec les environnements conda existants ?
Si vous avez déjà des environnements conda sur vos machines, voici les étapes recommandées pour les adapter.
Préférez installer la distribution miniforge en lieu et place d’Anaconda. En effet le logiciel conda, fourni par Anaconda, contient dans son binaire des références aux canaux d’Anaconda, dont il est difficile de s’affranchir. Ensuite :
1 – Exportez les environnements proprement
Exportez l'environnement existant dans un fichier YAML qui sera utilisé pour le reconstruire, puis supprimez l'environnement existant :
conda env export -f <env_name>.yml
conda deactivate
conda env remove --name <env_name>
2 – Si besoin, relâcher les numéros de version
Si des problèmes de dépendances surviennent, essayez d’exporter l'environnement sans les versions des packages en utilisant :
conda env export | cut -f 1 -d "=" | grep -v "prefix" > <nom_env>.ymlCela devrait installer automatiquement les versions compatibles les plus récentes.
3 - Recréer un nouvel environnement
Recréez ensuite l'environnement en procédant comme suit :
conda env create -f <env_name>.yml4 - Vérifier la compatibilité des paquets
Si certains paquets ne sont pas disponibles sur conda-forge, il est recommandé d'examiner leur présence sur d'autres canaux compatibles ou de chercher des alternatives.
Note : cette mise à jour est uniquement nécessaire si vous utilisez activement l'environnement concerné. Tant que les environnements ne sont pas utilisés, cette étape devrait pouvoir être ignorée.
Pour en savoir plus
- Instructions détaillées pour migrer vers conda-forge
conda-forge.org/docs/user/transitioning_from_defaults - Guide complémentaire de migration avec quelques retours d’expérience
ubinfie.github.io/2024/10/15/anaconda-defaults.html - Article de blog explicitant la situation
www.anaconda.com/blog/update-on-anacondas-terms-of-service-for-academia-and-research - FÀQ legal terms
www.anaconda.com/pricing/terms-of-service-faqs - Mentions légales
legal.anaconda.com/policies/en/
Les contributeurs
Raphaël Flores
Université Paris-Saclay, INRAE, URGI, 78026, Versailles, France.
Rémy Decoupes
Univ Montpellier, AgroParisTech, CIRAD, CNRS, INRAE, UMR TETIS, 34090, Montpellier, France.
Pierre Poulain
Université Paris Cité, 75006, Paris, France.