Niedawno zainstalowałem anaconda2 na moim komputerze Mac. Domyślnie Conda jest skonfigurowana do aktywacji środowiska podstawowego po otwarciu nowej sesji terminala.
Chcę dostępu do poleceń Conda (tzn. Chcę dodać ścieżkę Conda do mojej $ PATH, którą robi Conda po zainicjowaniu, więc nie ma problemu).
Ale zwykle nie programuję w Pythonie i nie chcę, aby Conda domyślnie aktywowała środowisko.
Podczas pierwszego uruchamiania conda init
z wiersza Conda dodaje do mojego .bash_profile
:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/geoff/anaconda2/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/geoff/anaconda2/etc/profile.d/conda.sh" ]; then
. "/Users/geoff/anaconda2/etc/profile.d/conda.sh"
else
export PATH="/Users/geoff/anaconda2/bin:$PATH"
fi
# fi
unset __conda_setup
# <<< conda initialize <<<
Jeśli skomentuję cały blok, nie mogę aktywować żadnego środowiska Conda.
Próbowałem skomentować cały blok oprócz
export PATH="/Users/geoff/anaconda2/bin:$PATH"
Ale kiedy zacząłem nową sesję i próbowałem aktywować środowisko, dostałem ten komunikat o błędzie:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To pytanie (i inne podobne) jest pomocne, ale ostatecznie nie odpowiada na moje pytanie i jest bardziej odpowiednie dla użytkowników Linuksa.
Dla wyjaśnienia, nie proszę o usunięcie (base)
z mojej $PS1
prośby o to, aby Conda nie aktywowała bazy po otwarciu sesji terminalowej.
source activate
zamiast tego? aka "metoda oldschool"Odpowiedzi:
Mam conda 4.6 z podobnym blokiem kodu, który został dodany przez conda. W moim przypadku istnieje ustawienie konfiguracji conda, aby wyłączyć automatyczną aktywację bazy:
Przy pierwszym uruchomieniu utworzy on
./condarc
w twoim katalogu domowym takie ustawienie, aby zastąpić domyślny.Nie zaśmieca to twojego,
.bash_profile
ale jest to czystsze rozwiązanie bez ręcznej edycji tej sekcji, którą zarządza conda.źródło
conda config --describe
. Przeszukanie bazy kodu dla „auto_activate_base” wydaje się pokazać Conda v4.6.0 to wprowadzenie.conda config --set auto_activate_base false
Dziękujemy za zainstalowanie Anaconda3!Odpowiedź zależy trochę od wersji
conda
, którą zainstalowałeś. Dla wersji conda> = 4.4 powinno wystarczyćdeactivate
środowisko conda po inicjalizacji, więc dodajtuż pod
źródło
__conda_setup
funkcji, aby można było sprowadzić całość do 6 linii. Ale nie sądzę, żeby było tu wiele doW końcu odkryłem, że jeśli skomentowałem blok inicjalizacji Conda w następujący sposób:
Działa dokładnie tak, jak chcę. Oznacza to, że Conda jest dostępna do aktywacji środowiska, jeśli chcę, ale domyślnie się nie aktywuje.
źródło
rc
pliku? Byłbym również zainteresowany tym, ponieważ mogę traktować conda jak inne envs, zamiast zaśmiecać rzeczyconda config --set auto_activate_base false
, można rozwinąć?Istnieją 3 sposoby na osiągnięcie tego po
conda
4.6. (Ostatnia metoda ma najwyższy priorytet.)Użyj polecenia podrzędnego,
conda config
aby zmienić ustawienie.W rzeczywistości poprzednie
conda config
polecenie podrzędne zmienia plik konfiguracyjny.condarc
. Możemy modyfikować.condarc
bezpośrednio. Dodaj następujące treści do.condarc
swojego katalogu domowego,Ustaw zmienną środowiskową
CONDA_AUTO_ACTIVATE_BASE
w pliku inicjującym powłoki. (.bashrc
dla bash,.zshrc
dla zsh)Ustawienia środowiska mają pierwszeństwo przed odpowiednimi ustawieniami w
.condarc
pliku.Bibliografia
conda config --describe
źródło
export CONDA_AUTO_ACTIVATE_BASE=false; eval "$(conda shell.bash hook)"
export CONDA_AUTO_ACTIVATE_BASE=false
do mojego .zshrc, aby opcja 3 działała.Aby wyłączyć automatyczną aktywację środowiska conda base w terminalu:
Aby aktywować środowisko podstawowe Conda:
źródło
Jedną z rzeczy, o których nie wspomniano, jest to, że nie ma żadnej różnicy między brakiem aktywnego środowiska a aktywacją środowiska podstawowego, jeśli chcesz tylko uruchamiać aplikacje z katalogu skryptów Condy (Python) (jak chce @DryLabRebel) ).
Możesz zainstalować i odinstalować za pomocą conda, a conda pokazuje środowisko podstawowe jako aktywne - co w zasadzie jest to:
źródło
Jeśli chcesz zachować prostotę bashrc, możesz usunąć cały
conda init
wygenerowany bałagan i zachować tylko jedną linię:Zobacz Zalecana zmiana, aby włączyć conda w powłoce .
Dzięki temu polecenie conda będzie dostępne bez aktywacji środowiska podstawowego.
Jeśli chcesz używać bashrc w innych systemach, w których conda nie jest zainstalowanych w tej samej ścieżce, możesz również zachować linie
if
/fi
, aby uniknąć komunikatów o błędach, tj .:źródło
To może być błąd ostatniej anakondy. Co dla mnie działa:
krok 1:
vim /anaconda/bin/activate
pokazuje:krok 2: skomentuj ostatni wiersz:
# conda activate "$@"
źródło
Napotkałem ten sam problem. Początkowo usunąłem plik .bash_profile, ale nie jest to właściwy sposób. Po zainstalowaniu anakondy wyraźnie pokazuje instrukcje dotyczące tego problemu. Sprawdź obraz rozwiązania dostarczonego przez Anacondę
źródło