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 strict

Que 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>.yml

Cela 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>.yml

4 - 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

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.
 

Recommandations

Raphaël Flores, Rémy Decoupes, Pierre Poulain, 2024. Quelles alternatives aux fonctionnalités payantes d'Anaconda ?, INRAE (France), 3 p.