कैसे conda बनाने के लिए नए वातावरण स्थान निर्दिष्ट करने के लिए


107

संकुल के लिए डिफ़ॉल्ट स्थान मेरे घर निर्देशिका में .conda फ़ोल्डर है। हालाँकि, मैं जिस सर्वर का उपयोग कर रहा हूं, उसमें इस बात की बहुत सख्त सीमा है कि मैं कितनी जगह का उपयोग कर सकता हूं, जो मूल रूप से मेरे होम डायरेक्टरी के तहत कुछ भी डालने से बचता है। मैं जिस वर्चुअल वातावरण को बनाना चाहता हूं, उसके लिए स्थान कैसे निर्दिष्ट कर सकता हूं? धन्यवाद! सर्वर Ubuntu चला रहा है।


9
क्या उत्तर में कुछ गड़बड़ है या आपने इसे स्वीकार क्यों नहीं किया? आप हमेशा टिप्पणी छोड़ सकते हैं यदि कोई ऐसी चीज है जो आपको पसंद नहीं है।
पिनोचियो

3
@linX हमेशा अपने पसंद के उत्तरों को उभारना सुनिश्चित करें, और उस उत्तर को स्वीकार करें जो सबसे अच्छा है या जो आपके मुद्दे को हल करता है। यह लेखकों को एक मामूली पुरस्कार देता है और उन्हें अच्छी तरह से विचार और उपयोगी उत्तर देने के लिए जारी रखने के लिए प्रोत्साहित करता है।
माइक विलियम्सन

जवाबों:


120

पर्यावरण फ़ाइलों को लिखने के लिए निर्दिष्ट करने के लिए --prefixया -pविकल्प का उपयोग करें । उदाहरण के लिए:

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

डिफ़ॉल्ट नाम के स्थान /tmp/test-envपर रहने वाले नाम का वातावरण बनाएगा ।/tmp/.conda


6
लेकिन एक बार जब आप env का स्थान ले लेते हैं, तो conda को कैसे पता चलता है कि वह नया env कहाँ पर है?
पिनोचियो

4
~ / .conda / envs के अंदर प्रत्येक वातावरण के लिए एक निर्देशिका है। दूसरों के मार्गदर्शन का पालन करें और जहाँ भी आप चाहते हैं स्थापित करने के लिए उपयोग - उपसर्ग। फिर एक से दूसरे में एक सिमलिंक बनाएं: ln -s / share / eng / conds / envs / test-env ~ / /conda / envs / test-env
रॉबर्ट लैग

1
conda create --name hbf_env --prefix /om2/user/username python=3.6 काम क्यों नहीं करता? कहता है -bash: /home/username/.conda/envs/hbf_env/bin/conda: No such file or directory?
चार्ली पार्कर

7
चार्ली, मुझे यकीन नहीं है कि आपको लापता फ़ाइल / निर्देशिका के बारे में त्रुटि संदेश क्यों मिला, लेकिन इसके बावजूद, --nameइसका उपयोग नहीं किया जा सकता है --prefix। कंडोम को सही तरीके से स्थापित करने पर, संबंधित कमांड होगी conda create --prefix /om2/user/username/hbf_env python=3.6। यह hbf_envस्थान में नामित एक एनवी बनाएगा/om2/user/username/
थॉमस फाउन्सेन्कर

9
@ThomasFauskanger ऐसा लगता है कि उपसर्ग कमांड पर्यावरण के लिए एक नाम नहीं बनाता है, कम से कम मेरे लिए .. conda create --prefix hbf_envस्थानीय निर्देशिका के बाद , conda info --envsनाम के लिए रिक्त दिखाता है , लेकिन पूर्ण पथ दिखाता है ... वातावरण को सक्रिय करना आवश्यक है जो आपको बाहर करता है पूरा रास्ता (अगर मैं सिर्फ नाम टाइप करता हूं तो पर्यावरण को पता नहीं चल सकता है)
जोशुआ ज़स्ट्रो

53

जैसे पॉल ने कहा, उपयोग करें

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

यदि आप उस फ़ोल्डर में स्थित हैं जिसमें आप अपना आभासी वातावरण बनाना चाहते हैं, तो बस पथ और उपयोग को छोड़ दें

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

कॉन्डा केवल एनाकोंडा फ़ोल्डर के अंदर फ़ोल्डर एनवीएस में शामिल वातावरण का ट्रैक रखता है। अगली बार जब आपको अपना नया env सक्रिय करना होगा, तो उस फ़ोल्डर पर जाएँ जहाँ आपने इसे बनाया था और इसके साथ सक्रिय करें

source activate yourEnvName

2
ध्यान दें कि यदि आप पर्यावरण का नाम भूल गए हैं, तो आप अपने पर्यावरण वाले निर्देशिका के पूर्ण पथ का उपयोग कर सकते हैं
tjb

2
आप .condarcकॉन्फ़िगरेशन फ़ाइल का उपयोग करके अन्य स्थानों में एनवीएस देखने के लिए कोंडा बता सकते हैं । conda.io/docs/user-guide/configuration/…
हर्ष

यह एक नाम के बिना एक वातावरण बनाता है, केवल निर्देशिका। क्या बयान के भीतर नाम बनाने का कोई तरीका है? Conda मुझे दोनों को निर्दिष्ट नहीं करने देगा।
Kyouma

14

--prefixविकल्प के काम का उपयोग करते समय, आपको हर बार पर्यावरण बनाने के दौरान इसका स्पष्ट रूप से उपयोग करना होगा। यदि आप चाहते हैं कि आपका वातावरण डिफ़ॉल्ट रूप से कहीं और संग्रहीत हो, तो आप इसे अपने में कॉन्फ़िगर कर सकते हैं.condarc फ़ाइल ।

कृपया देखें: https://conda.io/docs/user-guide/configuration/use-condarc.html#specify-environment-directories-envs-dirs


4
यदि आपने इस चर को पहले से नहीं बदला है, तो आप इसे इस एक कमांड को चलाकर कॉन्फ़िगर कर सकते हैं:conda config --append envs_dirs /path/to/envs
आर्थर टाका

4
env_prompt: ({name})अपने प्रॉम्प्ट में पूर्ण पथ मिलने पर ~ /। कॉन्डार्क में भी जोड़ें ।
plonker13

12

यदि आप --prefixया -pतर्कों का उपयोग करना चाहते हैं , लेकिन इसे सक्रिय करने के लिए पर्यावरण के पूर्ण पथ का उपयोग करने से बचना चाहते हैं, तो आपको वातावरण बनाने से पहले.condarc कॉन्फ़िगरेशन फ़ाइल को संपादित करना होगा।

.condarcफ़ाइल घर निर्देशिका में है; C:\Users\<user>विंडोज पर। envs_dirsअपने पर्यावरण के लिए कस्टम पथ को शामिल करने के लिए कुंजी के तहत मूल्यों को संपादित करें । कस्टम पथ मान लिया गया है D:\envs, फ़ाइल को कुछ इस तरह देखना चाहिए:

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

फिर, जब आप उस पथ पर एक नया वातावरण बनाते हैं, तो उसका नाम पथ के साथ दिखाई देगा जब आप चलते हैं conda env list, और आपको इसे केवल नाम का उपयोग करके सक्रिय करने में सक्षम होना चाहिए, न कि पूर्ण पथ पर।

कमांड लाइन स्क्रीनशॉट

सारांश में, यदि आप .condarcशामिल करने के लिए संपादित करते हैं D:\envs, और फिर चलाते हैं conda env create -p D:\envs\myenv python=x.x, तो activate myenv(या source activate myenvलिनक्स पर) काम करना चाहिए।

उम्मीद है की वो मदद करदे!

पुनश्च मैं परीक्षण और त्रुटि के माध्यम से इस पर ठोकर खाई। मुझे लगता है कि जब आप envs_dirsकुंजी को संपादित करते हैं तो क्या होता है , के ~\.conda\environments.txtतहत निर्दिष्ट सभी निर्देशिकाओं में पाए जाने वाले वातावरण को शामिल करने के लिए कोंडा अपडेट करता है envs_dirs, इसलिए उन्हें निरपेक्ष पथों का उपयोग किए बिना एक्सेस किया जा सकता है।


8

आप इसे इस तरह से बना सकते हैं

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

और आपको इसे सक्रिय करने के लिए उस फ़ोल्डर में जाने की आवश्यकता नहीं है।

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

जैसा कि आप देखते हैं कि मैं इसे इस तरह से करता हूं।

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
जबकि ओपी ने कहा कि वे उबंटू, +1 का उपयोग कर रहे थे। :)
माइक विलियमसन

2

मैं एक समान स्थिति में भाग गया। मेरे पास बड़े डेटा ड्राइव तक पहुंच थी। आपकी स्थिति पर निर्भर करता है, और आपके पास उस सर्वर तक पहुंच है जिस पर आप विचार कर सकते हैं

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

फिर बाद में conda कमांड डेटा को सिम्पलिंकड dir में datavol में डाल देगा


यह वास्तव में सही उत्तर है, मेरी राय में - मूल प्रश्न पैकेजों के स्थान के बारे में था, और इसमें कुछ अस्पष्टता है, लेकिन मैं हाल ही में इस मुद्दे पर भाग गया, और थोड़ी जांच की। के तहत दो महत्वपूर्ण निर्देशिकाएं हैं $HOME/.conda, envsऔर pkgs--prefixऊपर बताई गई योजना का उपयोग करने से वातावरण कहीं और बनता है, लेकिन सभी पैकेज फ़ाइल डाउनलोड अभी भी जाते हैं $HOME/.conda/pkgs। यहां पेश किया जाने वाला सिमलिंक समाधान पर्यावरण और डाउनलोड स्थानों दोनों को ठीक करता है ।
एंड्रयू रीड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.