2015-07-19 37 views
19

OS X için conda update --all m çoğu zaman kitaplıklarını düşürür - çoğu güncelleştirme ile birlikte.neden conda'nın bazı kitaplıkları indirmediğini güncelleştiriyor

Bu normal mi? Ya da benim kurulumumda bir şey olabilir mi?

Bu yılın başlarında, aylarca yastık oldu. Şaşırtıcı bir şekilde, bugün, HDF5 ile ilgili kütüphaneler, numba ve llvmlite'nin birkaçıydı.

conda update numba, numba'yı en son sürüme geri yükler, ve diğer 8 kitaplık ile böyle devam eder, ancak neden bu kadar conda update --all bunu yapmıyor?

cevap

8

Bu bir uyumluluk sorunudur. Anaconda, kararlı bir paket kümesidir. Anaconda'yı güncellediğinizde, bu kararlı listeyi güncelleştirirsiniz. Ancak, tek tek paketleri güncelleştirdiğinizde, bunlar Anaconda dağıtımının geri kalanıyla uyumsuzluk sorunlarına neden olabilir ve bu nedenle kararlı sayılmazlar. Bu nedenle, conda update --all'u kullandığınızda, sizi istediğiniz tek bir paketin sürümüne sahip olabilecek veya olmayabilecek en son kararlı Anaconda dağıtımına yönlendirirsiniz.

Buraya bakın: https://github.com/ContinuumIO/anaconda-issues/issues/39

Edit: Bu davranış değişmiştir. Artık tüm paketlerin versiyonunu arttırmaya çalışıyor (Python'un büyük/küçük versiyonları hariç) ki hiçbir paket birbiriyle uyumsuz olacak.

Buraya bakın: http://continuum.io/blog/advanced-conda-part-1#conda-update-all

+0

Teşekkürler Ringil - çok takdir. Bu konuda Stackoverflow hakkında bir soru görmemeye şaşırmıştım ... Continuum'un github bölgesine bakmayı düşünmeliydim. –

+0

Bunun neden kabul edilen cevap olduğunu anlamıyorum, soru Anaconda meta paketinden hiç bahsetmiyor bile? Birini miniconda ile conda kullanırken kullanmanız gerekmez. –

+0

ah, iyi, bir anaconda etiketi var. –

6

Bazı kütüphaneler uyumluluk amacıyla belirli alt sürümleri bağlıdır. conda update --all, paketleri olabildiğince güncelleştirmeye çalışacaktır ancak her paketin meta verilerindeki sürüm kısıtlamaları ile uyumluluğu her zaman korur. anaconda paketinin buraya gelmediğine dikkat edin (conda'nın son bir sürümüne sahip olduğunuzu varsayarak), çünkü conda update --all onu yok sayar.

Maalesef neyin neye bağlı olduğunu görmek her zaman kolay değildir, ancak bazı hileler vardır. Bir yol, pin her paket için istediğiniz ve conda update --all çalıştıran bir sürüme. Soruna neyin neden olduğu konusunda size bir fikir verecek tatmin edici olmayan bir ipucu oluşturmalıdır. Başka bir yol ise package metadata'u aramaktır.

Numba için sorunun muhtemelen numbapro ile ilgili olduğunu söyleyebilirim. Hdf5'e bağlı birkaç paket var. Bir paketin bağımlılıklarını görmek için conda info <package>'u kullanabilirsiniz (conda info h5py gibi).

+0

Teşekkürler Aaron (Ben Ringil'e işaret verdim ... şimdiden sevgiyle dolup taşıyorsun :-). –

+0

Ringil'in cevabı kesinlikle doğru değil. Daha önce de belirttiğim gibi, "anaconda" paketi, "conda update --all" tarafından tamamen yok sayılıyor (bu, geçmişte birçok soruna neden olan durum böyle değildi). – asmeurer

İlgili konular