La réponse courte est que, dans mon expérience en général, cela n'a pas d'importance lequel vous utilisez.
La réponse longue :
Ainsi, conda-forge
est un canal supplémentaire à partir duquel des packages peuvent être installés. En ce sens, il n'est pas plus spécial que le canal par défaut, ou aucun des autres centaines (milliers ?) de canaux auxquels des gens ont posté des packages. Vous pouvez ajouter votre propre canal si vous vous inscrivez sur https://anaconda.org et téléchargez vos propres packages Conda.
Ici, nous devons faire la distinction, que je pense n'est pas claire d'après votre formulation dans la question, entre conda
, le gestionnaire de packages multiplateforme, et conda-forge
, le canal de packages. Anaconda Inc. (anciennement Continuum IO), les principaux développeurs du logiciel conda
, maintiennent également un canal séparé de packages, qui est celui par défaut lorsque vous tapez conda install nomdupackage
sans changer d'options.
Il y a trois façons de changer les options des canaux. Les deux premières se font à chaque fois que vous installez un package et la dernière est persistante. La première consiste à spécifier un canal à chaque fois que vous installez un package :
conda install -c some-channel nomdupackage
Bien sûr, le package doit exister sur ce canal. De cette manière, nomdupackage
et toutes ses dépendances seront installés à partir de some-channel
. Alternativement, vous pouvez spécifier :
conda install some-channel::nomdupackage
Le package doit toujours exister sur some-channel
, mais maintenant, seul nomdupackage
sera tiré de some-channel
. Tout autre package nécessaire pour satisfaire les dépendances sera recherché dans votre liste par défaut de canaux.
Pour voir votre configuration de canaux, vous pouvez écrire :
conda config --show channels
Vous pouvez contrôler l'ordre dans lequel les canaux sont recherchés avec conda config
. Vous pouvez écrire :
conda config --add channels some-channel
pour ajouter le canal some-channel
en haut de la liste de configuration des canaux
. Cela donne à some-channel
la priorité la plus élevée. La priorité détermine (en partie) quel canal est sélectionné lorsque plus d'un canal contient un package particulier. Pour ajouter le canal à la fin de la liste et lui donner la priorité la plus basse, tapez
conda config --append channels some-channel
Si vous souhaitez supprimer le canal que vous avez ajouté, vous pouvez le faire en écrivant
conda config --remove channels some-channel
Consultez
conda config -h
pour plus d'options.
Cela dit, il y a quatre raisons principales d'utiliser le canal conda-forge
plutôt que le canal defaults
maintenu par Anaconda :
- Les packages sur
conda-forge
peuvent être plus à jour que ceux du canal defaults
- Il y a des packages sur le canal
conda-forge
qui ne sont pas disponibles sur defaults
- Vous préféreriez utiliser une dépendance telle que
openblas
(de conda-forge
) au lieu de mkl
(de defaults
).
- Si vous installez un package qui nécessite une bibliothèque compilée (par ex., une extension C ou un wrapper autour d'une bibliothèque C), cela peut réduire le risque d'incompatibilités si vous installez tous les packages dans un environnement depuis un seul canal en raison de la compatibilité binaire de la bibliothèque C de base (mais ce conseil peut être obsolète/changer à l'avenir).
13 votes
"Conda et conda-forge sont tous deux des gestionnaires de paquets Python." Je ne pense pas que ce soit vrai. Je ne pense pas que ceux-ci soient même dans la même catégorie de chose.
conda
est un gestionnaire de paquets etconda-forge
est un canal. Peut-être que c'était vrai lorsque cette question a été posée?