2016-03-01 7 views
5

をすべての環境を削除します5-10の環境では、相互に削除するのは苦痛です。ルート環境以外のすべての環境を簡単に削除する方法はありますか?Condaは私が</p> <pre><code>conda remove -n envname --all </code></pre> <p>で単一の環境を削除することができます知っているが、私は多くの場合、specifiyパッケージをインストールするか、それは私が定期的になってしまいますテストするために、複数の新しい環境を作成します(ルートを除く)

+0

"conda info --envs"のようなものを試して、環境のリストを取得し、 'conda remove --name envname --all'のようにそのリストを通してループを作成することができます。明らかに、ルート環境を避ける必要があります。 – Ringil

+0

@Ringil - もし私が探しているもののための "便利なオプション"がないなら、あなたはそのグラブをして、オプションをウィンドウに置く方法を知っていますか? – MSeifert

答えて

5

は仕事をしていません。

1

私のコメントによれば、1つのcondaコマンドですべての環境を取得し、それをループして個別に削除することができます。このようなことをする方法があります。 anaconda_command_prompt_stringは、Anacondaコマンドプロンプトが呼び出す適切な文字列に置き換える必要があります。また、このコードは、おそらく非常に壊れやすい:conda内に常駐envsサブディレクトリ内のすべてのディレクトリを削除する

from subprocess import PIPE, Popen 

anaconda_command_prompt_string = 'C:\\Windows\\system32\\cmd.exe "/K" C:\\Users\\your_user_name\\AppData\\Local\\Continuum\\Anaconda3\\Scripts\\activate.bat C:\\Users\\your_user_name\\AppData\\Local\\Continuum\\Anaconda3' 
p = Popen(anaconda_command_prompt_string, stdin=PIPE, stdout=PIPE, bufsize=1) 
p.stdout.readline(), # read the first line 

print >>p.stdin, 'conda env list' # write input 
p.stdin.flush() 
p.stdout.readline() 

p.stdout.readline() 

p.stdout.readline() 

p.stdout.readline() 
envs = [] 


line = 'Anaconda' 
while 'Anaconda' in line: 
    line = p.stdout.readline() 
    name = line.replace(' ', '').split('C:')[0] 
    if 'root' not in name and '\n' not in name: 
     envs.append(name) 

for name in envs: 
    command_string = 'conda remove -n {0} --all --yes'.format(name) 
    print >>p.stdin, command_string 
    p.stdin.flush() 
    line = p.stdout.readline() 
    while 'Complete' not in line: 
     print line 
     line = p.stdout.readline() 
    print line 
1

最も洗練された答えではありません。しかし、私はちょうどconda info --envsからすべての環境の名前をコピーします。そして、bashのを作る(またはWindows用の.bat)を使用すると、例えばを必要とするすべてのコマンドでファイル...

conda remove -n env_name_1 --all -y conda remove -n env_name_2 --all -y conda remove -n env_name_3 --all -y conda remove -n env_name_4 --all -y conda remove -n env_name_5 --all -y

それともコピーして、端子にそれを貼り付け、それはあなたを整理します!

私がちょっとしたbash(または.bat)ウィザード(またはグーグルをするのが気になるかもしれない)なら、conda info --envsの出力をパイプしてconda remove ...コマンドを生成することができます。

関連する問題

 関連する問題