web-dev-qa-db-fra.com

pourquoi la mise à jour de conda rétrograde-t-elle certaines bibliothèques

Pour m, sous OS X, conda update --all rétrograde souvent les bibliothèques - et en met à jour plusieurs.

Est-ce habituel? Ou quelque chose peut-être dans ma configuration?

Plus tôt cette année, c'était un oreiller pendant plusieurs mois.

Étonnamment, il s'agissait aujourd'hui de plusieurs bibliothèques liées à HDF5, numba et llvmlite.

Donc conda update numba ramène numba à la version la plus récente, et ainsi de suite avec les 8 autres bibliothèques, mais pourquoi conda update --all faire ça quand même?

38
Christopher Short

C'est un problème de compatibilité. Anaconda est un ensemble stable de packages. Lorsque vous mettez à jour Anaconda, vous mettez à jour vers cette liste stable.

Cependant, lorsque vous mettez à jour des packages individuels, ils peuvent provoquer des problèmes d'incompatibilité avec le reste de la distribution Anaconda et ne sont donc pas considérés comme stables. C'est pourquoi lorsque vous utilisez conda update --all, il vous amène à la dernière distribution stable d'Anaconda, qui pourrait ou non avoir la version du package individuel que vous vouliez.

Voir ici: https://github.com/ContinuumIO/anaconda-issues/issues/39

Modifier: ce comportement a changé. Il essaie maintenant d'augmenter la version de tous les packages (sauf Python entre les versions majeures/mineures) de sorte qu'aucun package ne soit incompatible les uns avec les autres.

Voir ici: http://continuum.io/blog/advanced-conda-part-1#conda-update-all

27
Ringil

Certaines bibliothèques dépendent de versions inférieures spécifiques à des fins de compatibilité. conda update --all essaiera de mettre à jour les packages autant que possible, mais il maintiendra toujours la compatibilité avec les restrictions de version dans les métadonnées de chaque package. Notez que le package anaconda n'entre pas en jeu ici (en supposant que vous avez une version récente de conda), car conda update --all l'ignore.

Malheureusement, il n'est pas toujours facile de voir ce qui dépend de quoi, mais il y a quelques astuces. Une façon consiste à épingler chaque paquet dans une version que vous voulez et en exécutant conda update --all. Il devrait générer un indice d'insatisfaction qui vous donnera une idée de la cause du problème. Une autre façon consiste à rechercher dans les métadonnées du package .

Pour numba, je peux suggérer que le problème est probablement lié à numbapro. Il existe quelques packages qui dépendent de hdf5. Vous pouvez utiliser conda info <package> pour voir les dépendances d'un package (comme conda info h5py).

11
asmeurer