既存のconda環境を別の.ymlファイルで更新するにはどうすればよいですか。これは、複数の要件ファイル、つまりbase.yml, local.yml, production.yml
などを含むプロジェクトで作業する場合に非常に役立ちます.
たとえば、以下はbase.yml
ファイルにconda-forge、conda、およびpipパッケージがあります。
base.yml
name: myenv
channels:
- conda-forge
dependencies:
- Django=1.10.5
- pip:
- Django-crispy-forms==1.6.1
実際の環境は、conda env create -f base.yml
で作成されます。
後で、base.yml
に追加のパッケージを追加する必要があります。別のファイル、たとえばlocal.yml
は、それらの更新をインポートする必要があります。
これを達成するための以前の試みには以下が含まれます。
インポート定義でlocal.yml
ファイルを作成する:
channels:
dependencies:
- pip:
- boto3==1.4.4
imports:
- requirements/base.
そして、コマンドを実行します:conda install -f local.yml
。
これは動作しません。何かご意見は?
conda env update を使用してみてください:
source activate myenv
conda env update --file local.yml
alkamidの答えは正しい行にありますが、環境が既にアクティブである場合、Condaは新しい依存関係のインストールに失敗することがわかりました。環境を非アクティブ化すると、最初にこれが解決されます。
source deactivate;
conda env update -f whatever.yml;
source activate my_environment_name; # Must be AFTER the conda env update line!
提案された答えは部分的に正しいです。 environment.ymlから削除されたパッケージもアンインストールするために-Pruneオプションを追加する必要があります。正しいコマンド:
conda env update -f local.yml --Prune