web-dev-qa-db-ja.com

なぜcondaの更新はいくつかのライブラリをダウングレードするのですか

OS Xのmの場合、conda update --all多くの場合、ライブラリをダウングレードします。

これは普通ですか?または私のセットアップに何かありますか?

今年の初め、それは何ヶ月もの間枕でした。

驚いたことに、今日はHDF5に関連するいくつかのライブラリ、numbaとllvmliteでした。

そう conda update numbaは、numbaを最新バージョンに戻します。他の8つのライブラリについても同様ですが、なぜそうならないのですかconda update --allとにかくこれをしますか?

38

これは互換性の問題です。 Anacondaは安定したパッケージのセットです。 Anacondaを更新すると、この安定したリストに更新されます。

ただし、個々のパッケージを更新すると、他のAnacondaディストリビューションとの非互換性の問題が発生する可能性があるため、安定しているとは見なされません。 conda update --allを使用すると、最新の安定したAnacondaディストリビューションが表示されます。これには、必要な個々のパッケージのバージョンがある場合とない場合があります。

こちらをご覧ください: https://github.com/ContinuumIO/anaconda-issues/issues/39

編集:この動作は変更されました。現在、すべてのパッケージのバージョンを増やして(Pythonメジャー/マイナーバージョン間))、パッケージが相互に互換性がないようにします。

こちらをご覧ください: http://continuum.io/blog/advanced-conda-part-1#conda-update-all

27
Ringil

一部のライブラリは、互換性のために特定の下位バージョンに依存しています。 conda update --allは、可能な限りパッケージを更新しようとしますが、各パッケージのメタデータのバージョン制限との互換性を常に維持します。 conda update --allがそれを無視するため、anacondaパッケージはここでは動作しないことに注意してください(condaの最新バージョンがある場合)。

残念ながら、何が何に依存しているかを見るのは必ずしも簡単ではありませんが、いくつかのトリックがあります。 1つの方法は、 pin 必要なバージョンに各パッケージを追加し、conda update --allを実行することです。何が問題の原因なのかを知る不満のヒントを生成するはずです。もう1つの方法は、 パッケージメタデータ を検索することです。

Numbaの場合、問題がnumbaproに関連している可能性が高いことを示唆できます。 hdf5に依存するパッケージがいくつかあります。 conda info <package>を使用して、パッケージの依存関係を確認できます(conda info h5pyなど)。

11
asmeurer