Jak mogę zmienić nazwę środowiska Conda?

284

Mam nazwane środowisko conda old_name, jak mogę zmienić jego nazwę na new_namebez rozbijania referencji?

pkowalczyk
źródło
Zobacz także ten post na temat klonowania środowiska
conda

Odpowiedzi:

457

Nie możesz

Jednym z obejść jest utworzenie środowiska klonowania, a następnie usunięcie oryginalnego:

(pamiętaj o dezaktywacji obecnego środowiska deactivatew systemie Windows i source deactivateMacOS / Linux)

conda create --name new_name --clone old_name
conda remove --name old_name --all # or its alias: `conda env remove --name old_name`

Istnieje kilka wad tej metody:

  1. ponownie pobiera pakiety - możesz użyć --offlineflagi, aby ją wyłączyć,
  2. czas spędzony na kopiowaniu plików środowiska,
  3. tymczasowe użycie podwójnego dysku.

Występuje otwarty problem z żądaniem tej funkcji.

pkowalczyk
źródło
90
booooo dlaczego nie można zmienić nazwy conda env?
Charlie Parker
6
aby zostawić trochę pracy tym, którzy rozwidlają conda i tym samym sprawiają, że rozumieją znacznie więcej na drodze: P: D
Saravanabalagi Ramachandran
3
Innym sposobem jest sklonowanie środowiska, conda create --name new_name --clone old_namea następnie usunięcie starego.
Y0da,
4
Słowo ostrzeżenia - próbowałem to zrobić i napotkałem dziwne błędy - mój .bashrcjuż nie działał, a próba uruchomienia pytestzakończy się niepowodzeniem, próba odniesienia się do usuniętego środowiska. Próbowałem nowych powłok i restartowałem bez powodzenia. Skończyło się na wysadzeniu nowego środowiska, a następnie po prostu zacznij od czystej instalacji. Wolniej, ale wydaje się, że teraz działa.
dwanderson
3
@dwanderson +5000, ponieważ zamierzałem spróbować użyć tej odpowiedzi, ale zamiast tego po prostu ściągnę bandaidę i odtworzę od razu moją źle nazwaną env.
bgoodr
13

Na podstawie pomocnego komentarza dwandersona udało mi się to zrobić w jednej linijce Bash:

conda create --name envpython2 --file <(conda list -n env1 -e )

Mój źle nazwany env to „env1”, a nowy, którego chcę sklonować, to „envpython2”.

bgoodr
źródło
1
W PackagesNotFoundError: The following packages are not available from current channelstym skrypcie wystąpił błąd . Ten skrypt prawdopodobnie działa tylko wtedy, gdy nie masz pakietów zainstalowanych za pomocą pip i które nie są dostępne w conda w istniejącym środowisku?
Yuxuan Chen
-41

Wystarczy otworzyć folder „\ Anaconda \ envs” i zmienić jego nazwę.

Przed zmianą nazwy przed zmianą nazwy

Po zmianie nazwy po zmianie nazwy

mengLV LI
źródło
13
Ta odpowiedź łamie jupyter. Jupyter zgłasza „nie znaleziono ścieżki” podczas próby uruchomienia jądra Pythona.
MD004,
5
Istnieje ogromne ryzyko zniszczenia środowiska
FabienP
2
nie rób tego.
BenP
jednym z powodów jest to zły pomysł - w katalogu env / name znajdują się pliki zawierające bezwzględną ścieżkę do tego katalogu. Jeśli przeniesiesz katalog, ścieżka przestanie działać, ponieważ wskazuje na stary katalog, który już nie istnieje: envs / ds_tensorflow / Lib / site-packages / sipconfig.py: 'default_bin_dir': 'C: / Users / me / miniconda3 / envs / ds_tensorflow ', envs / ds_tensorflow / Lib / site-packages / sipconfig.py:' default_mod_dir ':' C: / Users / me / miniconda3 / envs / ds_tensorflow \\ Lib \\ site-packages ',
Donald S