pourquoi conda met-il à jour certaines bibliothèques

Pour m, sur OS X, conda update --all rétrograde souvent les bibliothèques-avec la mise à jour de beaucoup.

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

Plus tôt cette année, c'était un oreiller pendant de nombreux 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 ne le fait-il pas de toute façon?

23
demandé sur styvane 2015-07-19 09:00:33

2 réponses

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

Cependant, lorsque vous mettez à jour des paquets individuels, ils peuvent causer des problèmes d'incompatibilité avec le reste de la distribution Anaconda, de sorte qu'ils ne sont pas considérés comme stables. C'est pourquoi lorsque vous utilisez conda update --all, vous accédez à la dernière distribution stable Anaconda, qui peut ou non avoir la version du paquet individuel que vous vouliez.

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

Edit: ce comportement a changé. Il essaie maintenant d'augmenter la version de tous les paquets (sauf Python entre les versions majeures/mineures) de sorte qu'Aucun paquet ne sera incompatible les uns avec les autres.

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

12
répondu Ringil 2015-07-22 13:47:45

Certaines bibliothèques dépendent de versions inférieures spécifiques à des fins de compatibilité. {[0] } va essayer de mettre à jour les paquets autant que possible, mais il maintient toujours la compatibilité avec les restrictions de version dans les métadonnées de chaque paquet. Notez que le paquet anaconda n'entre pas en jeu ici (en supposant que vous ayez 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 est de pin chaque paquet à une version que vous voulez et en cours d'exécution conda update --all. Cela devrait générer un indice d'insatisfaction qui vous donnera une idée de ce qui cause le problème. Une autre façon est de rechercher dans les métadonnées du paquet .

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

7
répondu asmeurer 2015-07-20 17:18:45