Varsayılan Anaconda python ortamını değiştirme


170

Anaconda'yı kurdum ve iki ekstra ortam oluşturdum: py3k (Python 3.3'ü tutan) ve py34 (Python 3.4'ü tutan). Bunların yanı sıra, Anaconda yükleyicisinin varsayılan olarak oluşturduğu ve Python 2.7'yi tutan 'root' adlı varsayılan bir ortam var. Bu sonuncusu varsayılan, terminalden 'ipython'u her başlattığımda bana 2.7 sürümünü veriyor. Python 3.4 ile çalışmak için (kabukta) komutları vermem gerekiyor

source activate py34
ipython

bu da varsayılan ortamı Python 3.4 olarak değiştirir. Bu iyi çalışıyor, ancak çoğu zaman Python 2.7 (Python 2.7) yerine (öğretme amacıyla tuttuğum, oldukça uzun bir hikaye) rahatsız edici. Her neyse, her şeyi sıfırdan yeniden yüklemek istemediğimi akılda tutarak varsayılan ortamı Python 3.4 olarak nasıl değiştireceğimizi bilmek isterim.


7
Kullandığınız dikkatinizden kaçmış source activate py34Gözlerinde farklı .bashrc?
cel

1
Cevabınız için teşekkürler. Bunu denemedim çünkü kaynak komutun bir alt kabukta değil, aynı kabukta çalıştırılması gerektiğinden, bir bash betiğinden kaynak etkinleştirmeyi çağırmanın mümkün olmadığını düşünüyorum. Yukarıdaki iki satırı bir bash betiğine koyarak denedim ve işe yaramaz diyebilirim.
user2734434

4
Ben var CONDA_ROOT="/Users/bla/miniconda"ve source ${CONDA_ROOT}/bin/activate ${CONDA_ROOT}/envs/empty &> /dev/nullbenim .bashrcve iyi çalışıyor gibi görünüyor.
cel

1
.bashrcBir komut dosyası olarak değil, yeni kabuk tarafından kaynaklandığını düşünüyorum , bu nedenle bir bash komut dosyası çalıştırarak kontrol edemezsiniz.
cel

3
@ user2734434 bashrc dosyası oturumun başlangıcında kaynaklanır, bu nedenle içine koyarsanız source activate, kabuk ortamını etkiler.
asmeurer

Yanıtlar:


86

Sadece başka bir ortama geçmek istiyorsanız,

source activate environment-name

( environment-nameconda create ile oluşturabilirsiniz)


Genellikle yeni ortamlar oluşturmak en iyisidir. Ancak, gerçekten Python sürümünü varsayılan ortamda değiştirmek istiyorsanız, bunu aşağıdaki gibi yapabilirsiniz:

İlk olarak, çalıştırarak en son conda sürümüne sahip olduğunuzdan emin olun.

conda update conda

O zaman koş

conda install python=3.5

Bu, kök ortamınızdaki tüm paketlerinizi Python 3 sürümlerine güncellemeye çalışacaktır. Mümkün değilse (örn., Python 3.5 için bazı paketler oluşturulmadığı için), soruna hangi paketlerin neden olduğunu belirten bir hata mesajı verecektir.

Pip ile paketler yüklediyseniz, bunları yeniden yüklemeniz gerekir.


1
@flutefreak Aslında şimdi Windows üzerinde çalışacak ( conda update condaen son sürüme sahip olduğunuzdan emin olmak için önce çalıştırın ). Cevabı güncelleyeceğim.
asmeurer

126
Bu yanıtın varsayılan ortamı değiştirmekle ilgili soruya bağlandığı görülmemektedir.
Bob

16
@asmeurer Ama istenen bu değil. Herhangi bir ortamda paketleri güncellemek istemiyor. Py34'ü müdahale etmeden aktif olmak için varsayılan ortam yapmak istiyor, bu nedenle py34 "kaynak etkinleştirme" komutunu göndermeden önce aktif.
Bob

20
Burada @Bob ile hemfikirim. Kök ortamdaki paketler 3.5 olarak güncellenecektir ve bu, orijinal posterin özel sorununu çözmüş olabilir. Ancak bir bilgi istemi açtığınızda, hala kök ortamda olacaksınız, bu nedenle başka bir varsayılan ortam belirtmediniz. Bunu ve googles'i başarmak isteyen herkes bu soruda sona erdiğinden, orijinal soruların da cevaplanması daha iyi olurdu. Belki de varsayılan env'i kökten başka bir şeye değiştirmek mümkün değildir?
arjan

4
Bu benim için işe yaramıyor. Benim varsayılan python 3.4, bayrak kullanarak python=3.5python 3.4'ten 3.5'e yükseltmedi ... Herhangi bir öneriniz var mı?
WillZ

56

Genel Bakış
Bazı insanlar uyumluluk nedeniyle farklı python sürümlerine sahip birden fazla Anaconda ortamına sahiptir. Bu durumda, varsayılan ortamınızı ayarlayan bir komut dosyanız olmalıdır. Bu yöntemle, ortamlarınızda kullandığınız python sürümlerini koruyabilirsiniz.

Aşağıdaki, ortam_adı ortamınızın adıdır

Mac / Linux:
Bash profilinizi son satır olacak şekilde düzenleyin source activate environment_name. Mac OSX'te bu ~ / .bash_profile, diğer ortamlarda bu ~ / .bashrc olabilir

Örnek:
Mac OSX'te nasıl yaptım

  1. Terminal'i açın ve şunu yazın:

    nano ~/.bash_profile

  2. Dosyanın sonuna gidin ve aşağıdakileri yazın, burada "p3.5" ortamımdır:

    source activate p3.5

  3. Dosyadan Çık. Yeni bir terminal penceresi başlatın.

  4. Hangi ortamın etkin olduğunu görmek için aşağıdakileri yazın

    conda info -e

Sonuç, varsayılan olarak p3.5 ortamımı kullandığımı gösteriyor.

Windows için:
Birlikte bir komut dosyası (.cmd) oluşturun activate environment_nameve komut istemini her açtığınızda yürütülmesini sağlamak için bu talimatları izleyin.

  1. Bir toplu iş dosyası komutu oluşturun, örneğin "my_conda.cmd", Uygulama Verileri klasörüne koyun.
  2. Açtığınızda otomatik olarak başlatılacak şekilde yapılandırın cmd. Bu ayar Kayıt Defteri'nde:
    anahtar: HKCU \ SOFTWARE \ Microsoft \ Komut İşlemci
    değeri: Otomatik Çalıştırma
    türü: REG_EXPAND_SZ
    data: "% AppData% \ my_conda.cmd"

bu yanıttan: https://superuser.com/a/302553/143794


1
Çok teşekkür ederim. Mac sürümümle Python 2'den kurtulamadığımı buldum - bu nedenle iki ayrı ortam kurmak için önerilen eylemi takip ettim, ancak her yeni terminal penceresinde ortamı etkinleştirmeyi hatırlamak zorunda olmak çok can sıkıcıydı. Bu çalışıyor!
Livvy Jeffs

Bu, Windows 10 altında yaptığımda kırık bir boru ve donmuş komut istemine yol açar.
aaronsnoswell

Windows 10'da herkes bununla daha iyi şansa sahip mi?
Wassadamo

3
Bu kabul edilen cevap olmalıdır (en azından unix tabanlı Conda için)!
Simon Van Machin

50

Linux altında, varsayılan ortamı değiştirerek ayarlamanın daha kolay bir yolu var ~/.bashrcveya ~/.bash_profile sonunda şöyle bir şey bulacaksınız

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

Şununla değiştir:

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

ve hepsi bu kadar.


3
Soru nedir?
Dieter Meemken

Bu çözümü denedim, ama hala yolumda anaconda2 gösteriyor, herhangi bir fikir?
William Ross

10
Bu, varsayılan ortamı ayarlamaz. Conda'yı atlattığı anlaşılıyor ve "python3" ün varsayılan olduğunu düşünüyor. "conda info -e" halen geçerli ortam olarak "root" u gösterir. Hala conda varsayılan olan söylemek için bir yol arıyorum.
MrMas

8
Bu, varsayılan ortamı conda perspektifinden ayarlamaz. Conda'yı atlattığı anlaşılıyor ve "python3" ün varsayılan olduğunu düşünüyor. "conda info -e" halen geçerli ortam olarak "root" u gösterir. Bunu düzeltmek için ayrıca CONDA_PREFIX ve CONDA_DEFAULT_ENV ayarlamanız gerekir. O zaman bile, cevaplar hala bir hack; neden sadece 'kaynak etkinleştirmek <yeni varsayılan ortam>' çalıştırmak değil çünkü bu zaten bunu gerçekleştirmek için "yerleşik" yol olarak conda ile sağlanmıştır.
MrMas

Windows 10'da bir .bashrcveya var mı .bash_profile? Bu jattenberg.github.io/PDS-Fall-2013/assets/install/… 'ı takip ederken cygwin altında bir tane buldum . Ancak OP'nin istenen işlevselliğini elde etmek için değiştirmem gereken şey olduğundan emin değilim.
Wassadamo

14

Windows için Anaconda, cmd'ye bir kısayol olan Anaconda Prompt ile birlikte gelir ve PATH değişkenine anaconda eklemeden conda komutlarını çalıştırın. Konumunu bulun, kopyalayın ve yeniden adlandırın (myenv_prompt deyin). Myenv_prompt öğesine sağ tıklayın ve içerik menüsünden özellikleri seçin.

resim açıklamasını buraya girin

Hedef formu gibi özellikler penceresinin zaten metinle şey doldurulmalıdır %windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\ Bu komutla 1) ... \ cmd.exe 2) çalışma başlatmak üç bölümü vardır çevre 3) ile acitvate.bat \ ... ... \ Miniconda3 \

3. bölümü varsayılan olarak istediğiniz ortamın yoluyla değiştirin (myenv deyin) Hedef formunu aşağıdaki gibi doldurun%windir%\system32\cmd.exe "/K" C:\Users\xxx\AppData\Local\Continuum\Miniconda3\Scripts\activate.bat C:\Users\xxx\AppData\Local\Continuum\Miniconda3\envs\myenv

Şimdi myenv_prompt, cmd'yi python için varsayılan ortam olarak başlatmak için kısayol görevi görecektir. Başlat menüsünde tutabileceğiniz veya görev çubuğuna sabitleyebileceğiniz bu kısayol.

Bu yöntemin bir avantajı, varsayılan ortam olarak farklı ortamlara sahip birkaç kısayol oluşturabilmenizdir. Ayrıca , Özellikler penceresini Başlat formunu doldurarak varsayılan klasörü ayarlayabilirsiniz.

Bu yardımcı olur umarım

Not: Anaconda İstemi'ni bulmak gerekmez ve herhangi bir kısayolun hedefini değiştirerek yapılabilir. Ancak cmd.exe dosyasının yolunu bilmeniz ve activ.bat


2
Bu en iyi cevap olmalı
James McCormac

Bu yöntemi kullanıyorum, ancak ilk C:\Windows\System32\cmd.exe /c start ""
bölümüm

8

Kalıcı değişiklik

conda install python={version}

Geçici Olarak Değiştir

Ortamlarınızı görüntüleyin

çalıştırmak conda info --envsiçin terminal penceresine veya Anconda İstemi üzerinde

Kurmak istediğiniz ortamı göstermiyorsa

çalıştırmak conda create -n py36 python=3.6 anacondaiçin python 3.6 sürümü değiştirmek tercih

Bir ortamı etkinleştirme (Anaconda istemini kullanın)

çalıştırmak activate envnmebu komutla bulabilirsiniz envnme conda info --envsçalıştırdığınızda bir örnek olarak conda info --envsgösterilme

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

o zaman koş activate py36

koşmayı kontrol etmek python --version

Windows'da, başka bir ortamı etkinleştirmeden önce bir ortamı devre dışı bırakmak iyi bir uygulamadır. https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?highlight=deactivate%20environment


3
Bence OP, temel ortamı py36 olarak değiştiren bir çözüm istiyor, böylece activate py36başlangıçta her zaman çalıştırmak zorunda kalmıyorlar .
Wassadamo

6

Doğru cevap (Aralık 2018 itibariyle) ... yapamazsınız. Yükseltme conda install python=3.6işe yarayabilir, ancak gerekli olan ancak kaldırılamayan paketleriniz varsa işe yaramayabilir.

Anaconda adlı varsayılan bir ortam kullanır baseve aynı ada sahip yeni (ör. Python 3.6) bir ortam oluşturamazsınız. Bu kasıtlı. Anaconda tabanınızın python 3.6 olmasını istiyorsanız, bunu yapmanın doğru yolu python 3.6 için Anaconda'yı yüklemektir. Bir paket yöneticisi olarak, Anaconda'nın amacı farklı ortamları kapsül haline getirmektir, bu yüzden neden bunları etkinleştirmek zorundasınız ve neden üretim paketlerinde birçok soruna yol açabileceği için temel paketi sessizce değiştiremezsiniz.


Temel ortamım bozulursa ve onu çalışan bir ortamla değiştirmek istersem ne olur?
endolit

@ endolith Temel ortamım bozulursa ve onu çalışan bir ortamla değiştirmek istersem ne olur? Conda'yı yeniden yükleyin.
AMC

@ AMC Birçok kez yeniden kurdum. Her şeyi yeniden yapmadan iyi bir durumu kurtarmak için bir yol istiyorum
endolith

1
@endolith Aynı sorunu çözmek için birden çok kez yeniden yüklediniz mi? Nasıl kırıldı? Bunu başka bir yerde tartışmalıyız, bir sohbet odası oluşturdum .
AMC

1

Burada sunulan cevapların hiçbirinden memnun kalmadım, çünkü bir ortamı etkinleştirmek platformumda birkaç saniye sürüyor (herhangi bir nedenle)

Varsayılan olarak istediğim ortamın gerçek varsayılandan öncelikli olması için yol değişkenimi değiştirdim.

Benim durumumda "py35" ortamı için bunu gerçekleştirmek için aşağıdaki komutları kullandım:

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

ortamınızın nerede depolandığını öğrenmek için etkinleştirin ve girin where python. Bu yaklaşımın herhangi bir dezavantajı olup olmadığından henüz emin değilim. Conda yürütülebilir dosyasının varsayılan yolunu da değiştirdiği için. Bu durumda lütfen yorum yapın.


1

Bunu anaconda kullanarak bir kütüphane kurarken anladım. Sürümüm Python 3'ten * 2.7'ye gitti ve birçok şeyim çalışmayı durdurdu. Bulduğum en iyi çözüm ilk olarak mevcut en son sürümü görmekti:

conda search python

Ardından istediğiniz sürüme güncelleyin:

conda install python=3.*.*

Kaynak: http://chris35wills.github.io/conda_python_version/

Diğer yardımcı komutlar:

conda info
python --version

Sürümüm Python 3'ten * 2.7'ye gitti ve birçok şeyim çalışmayı durdurdu. Bir şeyi kaçırmadıkça, bu soru ve OP'de açıklananlarla ilgili görünmüyor.
AMC

0

Masaüstüne veya görev çubuğuna anaconda isteminin bir kısayolunu oluşturun ve bu kısayolun özelliklerinde, "Hedef:" içindeki son yolu ur ortamının yoluna değiştirdiğinizden emin olun:

C: \ Kullanıcılar \ BenBouali \ Anaconda3 \ C: \ Kullanıcılar \ BenBouali \ Anaconda3 \ envs \ tensorflow-gpu

Ön izleme

ve bu şekilde u tıklattığınızda belirli bir ortamı açmak için bu kısayolu kullanabilirsiniz, onu ur yoluna da ekleyebilirsiniz ve şimdi sadece kısayolun adını yazarak windows çalıştırma kutusundan çalıştırabilirsiniz.


0

Windows'ta, içinde aşağıdaki satırı içeren bir toplu iş dosyası oluşturun:

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

Tırnak içinde yer alan ilk yol, Anaconda kurulumunda activ.bat dosyasının yoludur. Sisteminizdeki yol farklı olabilir. Etkinleştirme komutunu izleyen ad, elbette istediğiniz ortam adı olmalıdır.

Ardından, Anaconda istemini açmanız gerektiğinde toplu iş dosyasını çalıştırın.


0

Yük senin "temel" bir ortam - OP adlı olarak py34- Eğer Terminal / kabuk yüklediğinizde.

Bash kullanıyorsanız, satırı koyun:

conda activate py34

içinde .bash_profile(veya .bashrc):

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

Her yeni terminal çalıştırdığınızda, conda ortamı py34yüklenir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.