Jak zmienić domyślne środowisko Anaconda Python

170

Zainstalowałem Anacondę i stworzyłem dwa dodatkowe środowiska: py3k (który zawiera Python 3.3) i py34 (który zawiera Python 3.4). Poza tym mam domyślne środowisko o nazwie „root”, które instalator Anaconda utworzył domyślnie i które zawiera Python 2.7. Ta ostatnia jest domyślna, za każdym razem, gdy uruchamiam „ipython” z terminala, otrzymuję wersję 2.7. Aby pracować z Pythonem 3.4, muszę wydawać polecenia (w powłoce)

source activate py34
ipython

które zmieniają domyślne środowisko na Python 3.4. Działa to dobrze, ale jest denerwujące, ponieważ przez większość czasu pracuję na Pythonie 3.4 zamiast na Pythonie 2.7 (który trzymam w celach dydaktycznych, to dość długa historia). W każdym razie chciałbym wiedzieć, jak zmienić domyślne środowisko na Python 3.4, pamiętając, że nie chcę instalować wszystkiego od nowa.

user2734434
źródło
7
czy rozważałeś użycie source activate py34w swoim .bashrc?
cel
1
Dziękuję za odpowiedź. Nie próbowałem tego, ponieważ myślę, że nie jest możliwe wywołanie aktywacji źródła ze skryptu bash, ponieważ polecenie źródła musi być uruchomione w tej samej powłoce, a nie w podpowłoce. Próbowałem umieścić powyższe dwie linie w skrypcie basha i mogę powiedzieć, że nie działa.
user2734434
4
Mam CONDA_ROOT="/Users/bla/miniconda"i source ${CONDA_ROOT}/bin/activate ${CONDA_ROOT}/envs/empty &> /dev/nullw moim .bashrci wydaje się, że działa dobrze.
cel
1
Myślę, że .bashrcnie jest uruchamiany jako skrypt, ale pochodzi z nowej powłoki, dlatego nie można go sprawdzić, uruchamiając skrypt bash.
cel
3
@ user2734434 plik bashrc jest pobierany na początku sesji, więc jeśli go umieścisz source activate, wpłynie to na środowisko powłoki.
asmeurer

Odpowiedzi:

86

Jeśli chcesz po prostu przejść do innego środowiska, użyj

source activate environment-name

(możesz tworzyć za environment-namepomocą `conda create)


Zazwyczaj najlepiej jest po prostu tworzyć nowe środowiska. Jeśli jednak naprawdę chcesz zmienić wersję Pythona w domyślnym środowisku, możesz to zrobić w następujący sposób:

Najpierw upewnij się, że masz najnowszą wersję Conda, uruchamiając

conda update conda

Następnie uruchomić

conda install python=3.5

Spowoduje to próbę zaktualizowania wszystkich pakietów w środowisku głównym do wersji Python 3. Jeśli nie jest to możliwe (np. Ponieważ jakiś pakiet nie jest zbudowany dla Pythona 3.5), wyświetli się komunikat o błędzie wskazujący, które pakiety spowodowały problem.

Jeśli zainstalowałeś pakiety za pomocą pip, będziesz musiał je ponownie zainstalować.

asmeurer
źródło
1
@flutefreak To faktycznie będzie teraz działać w systemie Windows (uruchom conda update condanajpierw, aby upewnić się, że masz najnowszą wersję). Zaktualizuję odpowiedź.
asmeurer
126
Wydaje się, że ta odpowiedź nie łączy się z pytaniem, które dotyczy zmiany domyślnego środowiska.
Bob
16
@asmeurer Ale nie o to pytano. Nie chce aktualizować pakietów w żadnym środowisku. Chce ustawić py34 jako domyślne środowisko, aby było aktywne bez interwencji, więc py34 jest aktywny, zanim wyśle ​​polecenie „aktywuj źródło”.
Bob
20
Muszę się zgodzić z @Bobem tutaj. Pakiety w środowisku głównym zostaną zaktualizowane do wersji 3.5, co mogło rozwiązać specyficzny problem pierwotnego autora. Ale kiedy otworzysz monit, nadal będziesz w środowisku głównym, więc nie określiłeś innego domyślnego środowiska. Ponieważ każdy, kto chce to osiągnąć i szuka go w Google, kończy się na tym pytaniu, byłoby lepiej, gdyby odpowiedzi na oryginalne pytania również zostały udzielone. Być może zmiana domyślnego env na coś innego niż root nie jest możliwa?
arjan
4
To nie działa na mnie. Moim domyślnym jest python 3.4, użycie flagi python=3.5nie zaktualizowało Pythona z 3.4 do 3.5 ... Jakieś sugestie?
WillZ
56

Omówienie
Niektórzy ludzie mają wiele środowisk Anaconda z różnymi wersjami Pythona ze względu na kompatybilność. W takim przypadku powinieneś mieć skrypt, który ustawia twoje domyślne środowisko. Dzięki tej metodzie możesz zachować wersje języka Python, których używasz w swoich środowiskach.

W poniższym przykładzie przyjęto, że nazwa_środowiska jest nazwą środowiska

Mac / Linux:
Edytuj swój profil bash, tak aby ostatnia linia była source activate environment_name. W Mac OSX jest to ~ / .bash_profile, w innych środowiskach może to być ~ / .bashrc

Przykład:
Oto jak to zrobiłem w systemie Mac OSX

  1. Otwórz Terminal i wpisz:

    nano ~/.bash_profile

  2. Przejdź na koniec pliku i wpisz następujące polecenie, gdzie „p3.5” to moje środowisko:

    source activate p3.5

  3. Zamknij plik. Uruchom nowe okno terminala.

  4. Wpisz następujące informacje, aby zobaczyć, które środowisko jest aktywne

    conda info -e

Wynik pokazuje, że domyślnie używam środowiska p3.5.

W systemie Windows:
utwórz plik poleceń (.cmd) activate environment_namei postępuj zgodnie z tymi instrukcjami, aby był wykonywany za każdym razem, gdy otworzysz wiersz polecenia

  1. Utwórz polecenie pliku wsadowego, np. „My_conda.cmd”, umieść je w folderze Application Data.
  2. Skonfiguruj go tak, aby był uruchamiany automatycznie przy każdym otwarciu cmd. To ustawienie znajduje się w rejestrze:
    klucz: HKCU \ SOFTWARE \ Microsoft \ Command Processor
    wartość: AutoRun
    typ: REG_EXPAND_SZ
    dane: „% AppData% \ my_conda.cmd”

z tej odpowiedzi: https://superuser.com/a/302553/143794

Pięść furii
źródło
1
Dziękuję Ci bardzo. Zauważyłem, że w mojej wersji Maca nie mogę pozbyć się Pythona 2 - więc zastosowałem się do zalecanej czynności, aby skonfigurować dwa oddzielne środowiska, ale bardzo denerwujące było pamiętać o aktywowaniu środowiska w każdym nowym oknie terminala. To działa!
Livvy Jeffs
Prowadzi to do uszkodzenia rurociągów oraz mrożone wiersza poleceń, kiedy to zrobić w Windows 10.
aaronsnoswell
Ktoś na Windows 10 ma z tym więcej szczęścia?
Wassadamo
3
To powinna być akceptowana odpowiedź (przynajmniej w przypadku Conda opartego na unixie)!
Simon Van Machin
50

W Linuksie jest łatwiejszy sposób na ustawienie domyślnego środowiska poprzez modyfikację ~/.bashrclub ~/.bash_profile Na końcu znajdziesz coś takiego

# added by Anaconda 2.1.0 installer
export PATH="~/anaconda/bin:$PATH"

Zastąp go

# set python3 as default
export PATH="~/anaconda/envs/python3/bin:$PATH"

i to wszystko.

Jev
źródło
3
A jakie jest pytanie?
Dieter Meemken
Wypróbowałem to rozwiązanie, ale nadal pokazuje na mojej ścieżce anaconda2, jakieś pomysły?
William Ross,
10
Nie powoduje to ustawienia domyślnego środowiska. Wydaje się, że omija condę i udaje, że uważa, że ​​domyślnym jest „python3”. „conda info -e” nadal pokazuje „root” jako bieżące środowisko. Nadal szukam sposobu, aby powiedzieć Conda, która jest domyślna.
MrMas
8
To nie ustawia domyślnego środowiska z perspektywy Condy. Wydaje się, że omija condę i udaje, że uważa, że ​​domyślnym jest „python3”. „conda info -e” nadal pokazuje „root” jako bieżące środowisko. Aby to naprawić, musisz również ustawić CONDA_PREFIX i CONDA_DEFAULT_ENV. Nawet wtedy odpowiedzi wciąż są hackem; dlaczego nie po prostu uruchomić 'source Activation <nowe domyślne środowisko>', skoro jest to już dostarczone z conda jako "wbudowaną" drogą do osiągnięcia tego.
MrMas
Czy jest .bashrclub .bash_profilew systemie Windows 10? Znalazłem jeden pod cygwin podczas śledzenia tego jattenberg.github.io/PDS-Fall-2013/assets/install/… . Ale nie jestem pewien, co powinienem zmienić, aby uzyskać pożądaną funkcjonalność OP.
Wassadamo
14

W systemie Windows Anaconda zawiera Anaconda Prompt, która jest skrótem do cmd i może być używana do uruchamiania poleceń conda bez dodawania anacondy w zmiennej PATH. Znajdź jego lokalizację, skopiuj i zmień nazwę kopii (powiedzmy myenv_prompt). Kliknij prawym przyciskiem myszy myenv_prompt i wybierz właściwości z menu kontekstowego.

wprowadź opis obrazu tutaj

Forma docelowa okna Właściwości powinna być już wypełniona tekstem, na przykład %windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\ Istnieją trzy części tego polecenia 1) start ... \ cmd.exe 2) uruchom ... \ acitvate.bat ze środowiskiem 3) ... \ Miniconda3 \

Zmień trzecią część na ścieżkę środowiska (powiedzmy myenv), którą chcesz jako domyślną, tj. Wypełnij formularz docelowy w podobny sposób%windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\envs\myenv

Teraz myenv_prompt będzie działać jako skrót do uruchomienia cmd z myenv jako domyślnym środowiskiem dla Pythona. Ten skrót możesz zachować w menu Start lub przypiąć na pasku zadań.

Jedną z zalet tej metody jest to, że można utworzyć kilka skrótów, z których każdy ma inne środowisko jako środowisko domyślne. Możesz również ustawić domyślny folder, wypełniając Start w oknie Właściwości

Mam nadzieję że to pomoże

PS: Nie jest wymagane, aby znaleźć Anaconda Prompt i można to zrobić, zmieniając cel dowolnego skrótu. Ale musisz znać ścieżkę do cmd.exe i aktywować.bat

Kushdesh
źródło
2
To powinna być najlepsza odpowiedź
James McCormac
Używam tej metody, ale moja pierwsza część jest trochę inna: C:\Windows\System32\cmd.exe /c start ""Nie jestem pewien, jak doszedłem do tego rozwiązania, ale oto post, który napisałem na temat jego składni
xtian
8

Zmień na stałe

conda install python={version}

Zmień tymczasowo

Zobacz swoje środowiska

uruchomić conda info --envsw oknie terminala lub monitem Anconda

Jeśli nie pokazuje środowiska, które chcesz zainstalować

uruchom conda create -n py36 python=3.6 anacondadla Pythona 3.6 zmień wersję według własnego uznania

Aktywacja środowiska (użyj zachęty Anaconda)

run activate envnmeenvnme, które możesz znaleźć za pomocą tego polecenia conda info --envsjako przykład po uruchomieniu conda info --envsgo show

base * C:\Users\DulangaHeshan\Anaconda3 py36 C:\Users\DulangaHeshan\Anaconda3\envs\py36

następnie uruchomić activate py36

sprawdzić bieg python --version

W systemie Windows dobrą praktyką jest dezaktywacja jednego środowiska przed aktywacją innego. https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?highlight=deactivate%20environment

Dulanga Heshan
źródło
3
Myślę, że OP chce rozwiązania, które zmienia środowisko podstawowe na py36, aby nie musiały uruchamiać się za activate py36każdym razem przy starcie.
Wassadamo
6

Prawidłowa odpowiedź (stan na grudzień 2018 r.) Brzmi ... nie możesz. Aktualizacja conda install python=3.6może działać, ale może nie działać, jeśli masz pakiety, które są niezbędne, ale nie można ich odinstalować.

Anaconda używa domyślnego środowiska o nazwie basei nie możesz utworzyć nowego (np. Python 3.6) środowiska o tej samej nazwie. To jest zamierzone. Jeśli chcesz, aby Twoja podstawowa Anaconda była w Pythonie 3.6, właściwym sposobem na to jest zainstalowanie Anacondy dla Pythona 3.6. Jako menedżer pakietów celem Anacondy jest hermetyzacja różnych środowisk, dlatego musisz aktywować w nich źródła i dlaczego nie możesz po prostu cicho przełączać pakietu podstawowego do woli, ponieważ może to prowadzić do wielu problemów w systemach produkcyjnych.

cgnorthcutt
źródło
Co się stanie, jeśli moje środowisko podstawowe jest zepsute i chcę je zastąpić takim, które działa?
endolit
@endolith Co się stanie, jeśli moje środowisko podstawowe jest zepsute i chcę je zastąpić takim, które działa? Zainstaluj ponownie Conda.
AMC
@AMC Ponownie instalowałem wiele razy. Chcę sposobu na odzyskanie dobrego stanu bez powtarzania wszystkiego
endolit
1
@endolith Wielokrotnie ponownie instalowałeś, aby naprawić dokładnie ten sam problem? Jak to się skończyło? Powinniśmy omówić to gdzie indziej, stworzyłem pokój rozmów .
AMC
1

Nie zadowalała mnie żadna z przedstawionych tutaj odpowiedzi, ponieważ aktywacja środowiska na mojej platformie zajmuje kilka sekund (z dowolnego powodu)

Zmodyfikowałem zmienną ścieżki, tak aby środowisko, które chcę jako domyślne, miało priorytet nad rzeczywistą wartością domyślną.

W moim przypadku użyłem następujących poleceń, aby to zrobić dla środowiska "py35":

setx PATH "%userprofile%\Anaconda3\envs\py35\;%PATH%"
setx PATH "%userprofile%\Anaconda3\envs\py35\Scripts;%PATH%"

aby dowiedzieć się, gdzie jest przechowywane Twoje środowisko, aktywuj je i wejdź where python. Nie jestem jeszcze pewien, czy takie podejście ma jakieś wady. Ponieważ zmienia również domyślną ścieżkę pliku wykonywalnego Conda. Jeśli tak się stanie, prosimy o komentarz.

dominik andreas
źródło
1

Otrzymałem to podczas instalowania biblioteki za pomocą anacondy. Moja wersja przeszła z Pythona 3. * na 2.7 i wiele moich rzeczy przestało działać. Najlepszym rozwiązaniem, jakie znalazłem, było najpierw zobaczenie najnowszej dostępnej wersji:

conda search python

Następnie zaktualizuj do żądanej wersji:

conda install python=3.*.*

Źródło: http://chris35wills.github.io/conda_python_version/

Inne pomocne polecenia:

conda info
python --version
Brad123
źródło
Moja wersja przeszła z Pythona 3. * na 2.7 i wiele moich rzeczy przestało działać. O ile czegoś nie brakuje, wydaje się, że nie ma to związku z pytaniem i tym, co jest opisane w OP.
AMC
0

Utwórz skrót zachęty anacondy na pulpicie lub pasku zadań, a następnie we właściwościach tego skrótu upewnij się, że zmodyfikowałeś ostatnią ścieżkę w polu „Target:” do ścieżki twojego środowiska:

C: \ Users \ BenBouali \ Anaconda3 \ ZMIENI SIĘ NA C: \ Users \ BenBouali \ Anaconda3 \ envs \ tensorflow-gpu

zapowiedź

w ten sposób możesz użyć tego skrótu, aby otworzyć określone środowisko po kliknięciu go, możesz również dodać go do ścieżki ur, a teraz będziesz mógł go uruchomić z okna uruchamiania systemu Windows, po prostu wpisując nazwę skrótu.

Kream
źródło
0

W systemie Windows utwórz plik wsadowy zawierający następujący wiersz:

start cmd /k "C:\Anaconda3\Scripts\activate.bat C:\Anaconda3 & activate env"

Pierwsza ścieżka zawarta w cudzysłowie to ścieżka do pliku activ.bat w instalacji programu Anaconda. Ścieżka w systemie może być inna. Nazwa występująca po komendzie aktywowania powinna oczywiście być żądaną nazwą środowiska.

Następnie uruchom plik wsadowy, gdy chcesz otworzyć monit Anaconda.

Fijoy Vadakkumpadan
źródło
0

Załaduj swoje "podstawowe" środowisko - jako OP py34- kiedy ładujesz terminal / powłokę.

Jeśli używasz Bash, umieść linię:

conda activate py34

w twoim .bash_profile(lub .bashrc):

$ echo 'conda activate py34' >> ~/.bash_profile

Za każdym razem, gdy uruchomisz nowy terminal, py34zostanie załadowane środowisko Conda .

Brandt
źródło