उत्तरदायी का उपयोग करके एक विशिष्ट पायथन संस्करण के लिए वर्चुअलएन्व कैसे बनाते हैं। क्या उत्तरदायी मानक पुस्तकालय में कोई आदेश है?उत्तरदायी वर्चुअलएव
- virtualenv: dest=venv python_version:/usr/bin/python3
उत्तरदायी का उपयोग करके एक विशिष्ट पायथन संस्करण के लिए वर्चुअलएन्व कैसे बनाते हैं। क्या उत्तरदायी मानक पुस्तकालय में कोई आदेश है?उत्तरदायी वर्चुअलएव
- virtualenv: dest=venv python_version:/usr/bin/python3
आप pip
मॉड्यूल और एक विशिष्ट virtualenv
बाइनरी के साथ यह कर सकते हैं:
मैं की तरह कुछ चाहते हैं
- pip: virtualenv=/path/to/venv virtualenv_command=/path/to/virtualenv3 ...
मैं कई बार किया है virtualenv_command
निर्दिष्ट करने के साथ कुछ अनियमित व्यवहार का अनुभव (उदाहरण: मेरे वर्चुअलएन्व में एक पायथन 2.7 निष्पादन योग्य हो रहा है, भले ही मैंने virtualenv-3.4
के साथ कमांड चलाने के लिए निर्दिष्ट किया हो।
आपको लगता है कि समस्या का अनुभव है, तो आप virtualenv मैन्युअल command
मॉड्यूल के साथ बना सकते हैं:
- name: Manually create the initial virtualenv
command: virtualenv /user/home/venvs/myenv -p python3.4 creates="/user/home/venvs/myenv"
(ध्यान दें: creates
निर्दिष्ट करने के द्वारा इस आदेश का केवल मामले में चलेगा कि एक virtualenv /user/home/venvs/myenv
पर मौजूद नहीं है)।
तो फिर तुम pip
कमांड के साथ सामान्य रूप में अपनी आवश्यकताओं को स्थापित कर सकते हैं:
- name: Install requirements
pip:
requirements=/my_app/requirements.txt
virtualenv=/user/home/venvs/myenv
अद्यतन
मैंने पाया कि virtualenv_python
(Ansible में 2.0+ उपलब्ध है) को निर्दिष्ट भी काम करने के लिए लगता है उपरोक्त मामले में। उदाहरण के लिए:
- name: Install requirements
pip:
requirements: /my_app/requirements.txt
virtualenv: /user/home/venvs/myenv
virtualenv_python: python3.4
आखिरी बार मेरे लिए काम किया (इस तरह उत्तरदायी 2 के दस्तावेज़ों में इस तरह का उल्लेख किया गया है)। सिर्फ एक चीज: मुझे 'कलिथिया' स्थापित करते समय 'chdir' निर्दिष्ट करने की आवश्यकता थी, अन्यथा वर्तमान निर्देशिका (जिसे 'requirements.txt' के अंदर संदर्भित किया गया है) गलत है। 'Chdir =/my_app' होने पर – FibreFoX
हो सकता है यदि पिछले दो' पाइप 'कार्य वर्चुअलएव के अंदर पाइथन 3.x की आवश्यकता नहीं है और आपका उत्तर Python 2.x का उपयोग कर रहा है। चूंकि Ansthible Python2 का उपयोग कर रहा है, यह एक 'pip2 install' कमांड उत्पन्न करता है जो वर्चुअलएन्व को बाईपास करता है और इसके बजाए किसी भी सिस्टम-स्तरीय पाइप इंस्टॉलेशन का उपयोग करेगा - इसलिए संकुल सिस्टम स्तर पर वर्चुअलएन्व में नहीं हैं।पाइथन 3 के साथ इस सेटअप के लिए, मुझे वर्चुअलनव और पीआईपी स्थापना बनाने के लिए खोल कमांड का उपयोग करना पड़ा। – RichVel
काम क्या था 'खोल: स्रोत "{{app_home}}/वर्चुअलनव्स/myenv/bin/सक्रिय करें" && pip3 install -r "{{app_home}}/test/requirements.txt" '। – RichVel
आप virtualenv_python
उदाहरण के लिए के साथ अपने virtualenv के लिए एक अजगर संस्करण निर्दिष्ट कर सकते हैं (इस के साथ आप मैन्युअल रूप से virtualenv पहले बनाने की आवश्यकता नहीं होना चाहिए):
- name: Initiate virtualenv
pip: virtualenv="{{ virtualenv_dir }}"
virtualenv_python=python3.4
requirements={{ app_dir }}/requirements.txt
यह उत्तरदायी 1 में पहले से ही संभव था। * 'Virtualenv_command' उदाहरण का उपयोग कर। 'virtualenv_command:" python3.4/path/to/virtualenv "' – Stefano
ऐसा करने के लिए नाम या आवश्यकताएं मांगी जा रही हैं। क्या मुझे इनमें से किसी भी विकल्प को सेट करने की ज़रूरत है? या क्या खाली वर्चुअलएव – user204088
@ user204088 बनाने का कोई तरीका है और आपको खाली वर्चुअलव की आवश्यकता क्यों होगी? उत्तरदायी पाइप मॉड्यूल अच्छी तरह से आपके लिए एक बनाता है यदि यह अस्तित्व में नहीं है, या इसका उपयोग करते हैं तो इसका उपयोग करें ... – Stefano
आपने शायद इसे पहले ही पता लगाया है लेकिन यह नाम/आवश्यकताएं मांग रहा है क्योंकि पाइप को यह जानने की आवश्यकता है कि क्या इंस्टॉल करना है। वर्चुअल वातावरण बनाने के लिए इसे ऊपर निर्दिष्ट के रूप में उपयोग नहीं किया जा सकता है। इसके बजाए, यह आपके द्वारा निर्दिष्ट पैकेज (ओं) को स्थापित करने के दौरान वर्चुअल वातावरण बनाता है। – William