conda create için yeni ortam konumu nasıl belirtilir


108

paketler için varsayılan konum, ana dizinimdeki .conda klasörüdür. ancak, kullandığım sunucuda, ne kadar alan kullanabileceğime dair çok katı bir sınır var, bu da temelde benim ana dizinimin altına herhangi bir şey koymamı engelliyor. Oluşturmak istediğim sanal ortam için konumu nasıl belirtebilirim? Teşekkürler! sunucu Ubuntu çalıştırıyor.


9
Cevapta bir sorun mu var veya neden kabul etmediniz? Beğenmediğiniz bir şey varsa her zaman yorum bırakabilirsiniz.
Pinokyo

3
@linX Her zaman beğendiğiniz yanıtlara olumlu oy verdiğinizden ve sorununuzu en iyi veya hangisinin çözdüğünü kabul ettiğinizden emin olun. Bu, yazarlara küçük bir ödül verir ve onları iyi düşünülmüş ve faydalı yanıtlar vermeye devam etmeye teşvik eder.
Mike Williamson

Yanıtlar:


121

Ortam dosyalarının nereye yazılacağını belirtmek için --prefixveya -pseçeneğini kullanın . Örneğin:

conda create --prefix /tmp/test-env python=2.7

Varsayılan yerine /tmp/test-envbulunan adlı ortamı yaratacaktır ./tmp/.conda


6
ama ortamın yerini değiştirdikten sonra, conda yeni ortamın nerede olduğunu nasıl bulacağını nasıl biliyor?
Pinokyo

4
~ / .conda / envs içindeki her ortam için bir dizin vardır. Başkalarının rehberliğine uyun ve istediğiniz yere kurmak için --prefix kullanın. Sonra birinden diğerine bir sembolik bağlantı oluşturun: ln -s / shared / eng / conds / envs / test-env ~ / .conda / envs / test-env
Robert Lugg

1
neden vermez conda create --name hbf_env --prefix /om2/user/username python=3.6 çalışır? diyor -bash: /home/username/.conda/envs/hbf_env/bin/conda: No such file or directory?
Charlie Parker

7
Charlie, eksik dosya / dizin ile ilgili hata mesajını neden aldığından emin değilim, ama buna bakılmaksızın --namekullanılamaz --prefix. Conda'nın doğru kurulduğunu varsayarsak, karşılık gelen komut olacaktır conda create --prefix /om2/user/username/hbf_env python=3.6. Bu hbf_env, konumda adlandırılmış bir /om2/user/username/
ortam yaratır

9
@ThomasFauskanger, önek komutu çevre için bir isim yaratmıyor gibi görünüyor, en azından benim için .. conda create --prefix hbf_envYerel dizinde sonra conda info --envsisim için boş görünüyor ama tam yolu gösteriyor ... ortamı etkinleştirmek yazmamı gerektiriyor tam yol (sadece adı
yazarsam conda ortamı bulamaz

53

Paul'ün dediği gibi, kullan

conda create --prefix=/users/.../yourEnvName python=x.x

sanal ortamınızı oluşturmak istediğiniz klasörde bulunuyorsanız, yolu atlayın ve

conda create --prefix=yourEnvName python=x.x

conda yalnızca anaconda klasörü içindeki envs klasöründe bulunan ortamları takip eder. Bir dahaki sefere yeni ortamınızı etkinleştirmeniz gerekecek, onu oluşturduğunuz klasöre taşıyın ve ile etkinleştirin.

source activate yourEnvName

2
Ortam adını unutursanız, ortamınızı içeren dizinin TAM yolunu kullanabilirsiniz
tjb

2
Conda'ya .condarcyapılandırma dosyasını kullanarak diğer konumlardaki env'leri aramasını söyleyebilirsiniz . conda.io/docs/user-guide/configuration/…
Sert

Bu, isimsiz bir ortam yaratır, sadece dizin. İfadede bir isim oluşturmanın bir yolu var mı? Conda ikisini de belirtmeme izin vermiyor.
Kyouma

15

Kullanırken --prefixseçenek işleri, açıkça Eğer bir ortam oluşturmak her zaman kullanmak zorunda. Ortamlarınızın varsayılan olarak başka bir yerde saklanmasını istiyorsanız, bunu .condarcdosyanızda yapılandırabilirsiniz .

Lütfen şu adrese bakın: https://conda.io/docs/user-guide/configuration/use-condarc.html#specify-environment-directories-envs-dirs


5
Bu değişkeni daha önce değiştirmediyseniz, şu tek komutu çalıştırarak yapılandırabilirsiniz:conda config --append envs_dirs /path/to/envs
Arthur Tacca

5
Ayrıca env_prompt: ({name})isteminizde tam yolu bulursanız ~ / .condarc dosyasına ekleyin .
plonker13

12

--prefixVeya -pbağımsız değişkenlerini kullanmak , ancak ortamı etkinleştirmek için ortamın tam yolunu kullanmak zorunda kalmamak istiyorsanız, ortamı oluşturmadan önce.condarc yapılandırma dosyasını düzenlemeniz gerekir .

.condarcDosya ana dizininde olduğu; C:\Users\<user>Windows'ta. envs_dirsOrtamınız için özel yolu dahil etmek için anahtarın altındaki değerleri düzenleyin . Özel yolun olduğu varsayılırsa, D:\envsdosya şu şekilde görünmelidir:

ssl_verify: true
channels:
  - defaults
envs_dirs:
  - C:\Users\<user>\Anaconda3\envs
  - D:\envs

Daha sonra, bu yolda yeni bir ortam oluşturduğunuzda, koştuğunuz zaman yolla birlikte bunun adı görünecektir conda env listve tam yolu değil, yalnızca adı kullanarak onu etkinleştirebilmelisiniz.

Komut satırı ekran görüntüsü

Özetle, .condarceklemek için düzenler D:\envsve sonra çalıştırırsanız conda env create -p D:\envs\myenv python=x.x, activate myenv(veya source activate myenvLinux'ta) çalışmalıdır.

Umarım yardımcı olur!

Not: Buna deneme yanılma yoluyla tökezledim. Sanırım envs_dirsanahtarı düzenlediğinizde olan şey, ~\.conda\environments.txtaltında belirtilen tüm dizinlerde bulunan ortamları dahil etmek için güncellemeleri dahil etmek envs_dirs, böylece mutlak yollar kullanmadan erişilebilir olmalarıdır.


8

Bunu böyle yaratabilirsin

conda create --prefix C:/tensorflow2 python=3.7

ve etkinleştirmek için o klasöre gitmeniz gerekmez.

# To activate this environment, use:
# > activate C:\tensorflow2

Gördüğün gibi bunu böyle yapıyorum.

D:\Development_Avector\PycharmProjects\TensorFlow>activate C:\tensorflow2

(C:\tensorflow2) D:\Development_Avector\PycharmProjects\TensorFlow>

(C:\tensorflow2) D:\Development_Avector\PycharmProjects\TensorFlow>conda --version
conda 4.5.13

1
OP, Ubuntu kullandıklarını söylerken, +1 de çözümü bir Windows makinesinde sağlamak için. :)
Mike Williamson

3

Benzer bir durumla karşılaştım. Daha büyük bir veri sürücüsüne erişimim vardı. Durumunuza ve göz önünde bulundurabileceğiniz sunucuya erişiminize bağlı olarak

ln -s /datavol/path/to/your/.conda /home/user/.conda

Ardından sonraki conda komutları veriyi datavol'deki sembolik dizine koyacaktır.


1
Bence bu gerçekten doğru cevap - asıl soru paketlerin yeri hakkındaydı ve biraz belirsizlik var, ancak son zamanlarda bu konuyla karşılaştım ve biraz araştırma yaptım. Orada altında iki önemli dizinleri vardır $HOME/.conda, envsve pkgs. --prefixYukarıda bahsedilen şemayı kullanmak ortamı başka bir yerde oluşturur, ancak tüm paket dosyası indirmeleri yine de gider $HOME/.conda/pkgs. Burada sunulan symlink çözümü hem ortamı hem de indirme konumlarını düzeltir .
Andrew Reid

Bu mükemmel bir çözüm!
Jingnan Jia
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.