Zgodnie z moim komentarzem, można uzyskać wszystkie środowiska za pomocą jednego polecenia conda, a następnie spróbuj wykonać pętlę i usunąć je pojedynczo. Oto jeden sposób, w jaki możesz zrobić coś takiego. Zauważ, że powinieneś zastąpić anaconda_command_prompt_string
odpowiednim ciągiem, który wywołuje twój Anaconda Command Prompt. Również kod ten jest prawdopodobnie dość kruche:
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
Może możesz wypróbować coś takiego jak 'conda info --envs' i pobrać listę środowisk i utworzyć pętlę z tej listy, np.' Conda remove --name envname --all'. Oczywiście należy unikać środowiska root. – Ringil
@Ringil - Jeśli nie ma "opcji wygody" dla tego, czego szukam, masz pojęcie, jak zrobić tę opcję przechwytywania i umieszczania w oknach? – MSeifert