質問にもっと正確に答えるには:
conda(Anacondaのminicondaのconda)は、パッケージの特定のバージョン内のみを更新します->メジャーとマイナー。それがパラダイムです。
ドキュメントでは、「注:Condaがそのシリーズの最高バージョンに更新されるため、Python 2.7は2.xシリーズの最高バージョンに更新され、3.6は3.xシリーズの最高バージョンに更新されます。」
文書
Wangが再現可能な例を提供しない場合、支援できるのは1人だけです。例えば、それは本当に彼が更新したい仮想環境なのか、それともWangは彼/彼女が望むものを手に入れられるのか
conda update -n ENVIRONMENT --all
*「update --all」を実行する前にドキュメントをお読みください!これは、本質的にすべてのパッケージの更新につながりません。condaは環境内のすべてのパッケージ間の依存関係を解決しようとするため、警告なしでパッケージがDOWNGRADEDになる可能性があります。
ほとんどすべてを更新したい場合は、ピンファイルを作成できます
echo "conda ==4.0.0" >> ~/miniconda3/envs/py35/conda-meta/pinned
echo "numpy 1.7.*" >> ~/miniconda3/envs/py35/conda-meta/pinned
更新を実行する前。
後で更新のために環境内のファイルを無視したい場合は、次のようにすることができます。
conda update --all --no-pin
update --allは実行しないでください。それでも必要な場合は、クローン環境でこれをテストする方が賢明です。
最初のステップは、常に現在の仕様をバックアップすることです。
conda list -n py35 --explicit
(しかし、それでも利用可能なソースへのリンクが常にあるわけではありません-jupyterlab拡張機能のように)
次に、クローンを作成して更新できます。
conda create -n py356 --clone py35
conda activate py356
conda config --set pip_interop_enabled True # for conda>=4.6
conda update --all
conda設定
更新:
コンダのアイデアはいいですが、複雑な環境ではうまく機能しないので、私は個人的にnix-shell (or lorri) and poetry
[優れたpip / conda .-)](intro poetry2nix)の組み合わせを好みます。
最後に、依存関係が原因で互換性のないパッケージを実際に処理する必要がある場合は、NixOS / nix-pkgsなどのテクノロジーを使用することが可能です。
conda update --all --alt-hint
それが何かの出力を与えるかどうかを試してみることができます...または単にconda update scipy
何が起こるか試してみてください(おそらく--alt-hint
フラグで)