web-dev-qa-db-ja.com

conda:すべてのインストール済みパッケージをベース/ルート環境から削除します

TL:DR:baseからインストール済みのパッケージをすべて削除するにはどうすればよいですか?

base conda環境に一連の機械学習パッケージをインストールしました。

機械学習用のml環境を作成しました。そこにインストールされているすべてのパッケージを削除して、base環境をリセットしたいと思います。

私はもう試した:

% activate base
% conda uninstall -n base --all

CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again

どうやら、現在の環境からパッケージを削除できないので(?!)、最初にml環境に切り替えましょう。

% source activate ml
% conda uninstall -n base --all

CondaEnvironmentError: cannot remove root environment,
       add -n NAME or -p PREFIX option

それでは、-pを使用します...

% conda uninstall -p ~/.local/share/miniconda3 --all

CondaEnvironmentError: cannot remove root environment,
       add -n NAME or -p PREFIX option

baseまたはroot環境にインストールされているすべてのパッケージをアンインストールするにはどうすればよいですか?

14
Tom Hale

どうやら、現在の環境からパッケージを削除できません(?!)

それではありませんが、代わりにbase環境を削除することはできません。これは--allフラグの機能です。 baseにあるパッケージをアンインストールすることはできませんallconda実行可能ファイルが存在するためです。代わりに、ユーザーがインストールしたすべてのパッケージをアンインストールします。これを行う1つの方法は、ユーザーパッケージをインストールする前の環境を元の状態に戻すことです。

> conda install --revision 0

また、回帰ではないかもしれない他の以前の状態を探すこともできますが、それでも不必要に蓄積したと思われるパッケージはすべて取り除くことができます。

> conda list -n base -r

最終的には、condaをアップグレードすることになるでしょう。これは、ベースパッケージへの更新も元に戻すからです。


エラー、ああ!

上記は本当に正しい方法ですが、私はエラーに遭遇します:

CondaRevisionError::: contextlib2-0.5.3-py35_0はレポデータにないため、0に戻すことはできません。

余談ですが、この種の心配は、2年前のコンダ環境の状態がアップストリームチャネルの状態から再現できないことを示しているように見えるためです。私は、このタイプの再現性が組み込まれているという仮定の下で働いてきました。

とにかく、リビジョン0のすべてのパッケージを現在のインストールと比較してから違いをアンインストールする以外に、これを解決するための明確な方法がわかりません。

15
merv

私はあなたと同じ問題を抱えていました、これが私がやったことです:

  1. conda-envのバックアップ:

    私。 「ml」など、保持する環境をアクティブにします

    ii。タイプconda-env export > /path/to/save/file/environment.yml

  2. baseをアクティブにし、ベースenvを初期に戻します:conda install --revision 0と入力します。これには時間がかかるはずです...

  3. .ymlファイルを読み込みます:conda env create -f /path/to/save/file/environment.ymlと入力します

1
Aaayue