2012-08-09 14 views
8

में वर्चुअलएन्व के लिए पायथन संस्करण निर्दिष्ट करें मैं एक टीम के साथ एक django अनुप्रयोग विकसित करने के लिए वर्चुअलenv का उपयोग कर रहा हूँ। जिस सर्वर पर हम तैनात कर रहे हैं वह पाइथन 2.6 चला रहा है, लेकिन हमारी मशीनों के लिए डिफ़ॉल्ट 2.7.3 है। क्या code.txt फ़ाइल में python संस्करण निर्दिष्ट करने का कोई तरीका है, या कोड बेस के भीतर कुछ समान है?आवश्यकताएँ.txt

मुझे पता है info.txt एक पीआईपी चीज है, और पायथन संस्करण वर्चुअलनेव चीज है, लेकिन यह वास्तव में सुविधाजनक होगा कि टीम में शामिल होने वाले हर नए व्यक्ति को अपने वर्चुअलएन्व को कैसे सेट अप किया जाए।

+2

मुझे समझ में नहीं आता कि आपका प्रश्न क्या प्रेरित कर रहा है। क्या आपका कोड '2.6' या' 2.7' के लिए लिखा गया है? यदि यह '2.6' के लिए लिखा नहीं गया है तो यह आपके सर्वर पर स्पष्ट रूप से काम नहीं करेगा, इसलिए मुझे नहीं पता कि आप क्या करना चाहते हैं :)। मान लीजिए कि यह '2.6' के लिए लिखा गया है, केवल दस्तावेज है कि यह' 2.6 + 'है, और venv बनाते समय विशेष रूप से '2.6' का उपयोग करने के लिए निर्दिष्ट करने की आवश्यकता नहीं है, अगर कोई व्यक्ति 2.7' का उपयोग करता है तो क्या गलत है? – Julian

+1

कोड 2.6 के लिए लिखा गया है क्योंकि सर्वरों को इसकी आवश्यकता होती है। इसे दस्तावेज किया जाना चाहिए, लेकिन मैं वर्चुअलएन्व के माध्यम से 2.6 को लागू करना चाहता हूं, बस लोगों को यह बताएं कि यह 2.6+ है और उम्मीद है कि वे पाइथन दस्तावेज़ों को अच्छी तरह से पढ़ लेंगे। – Arion

+1

इस प्रश्न का उत्तर यहां दिया गया है: http://stackoverflow.com/a/33451105/1959808 –

उत्तर

4

न तो पाइप और न ही वर्चुअलनेव पायथन स्थापित करें (हालांकि pip tries)। वे जो कुछ भी आप निर्दिष्ट करते हैं उसका उपयोग करते हैं।

आप एक रीडमी लिख सकते हैं जो आवश्यक पायथन संस्करण का उल्लेख करता है या fabric स्क्रिप्ट प्रदान करता है जो स्थानीयहोस्ट पर तैनात कर सकता है और वहां संस्करण निर्दिष्ट कर सकता है। उदाहरण के लिए, instructions to install virtualenv, pip, distribute

उन लोगों के लिए जो निर्देश नहीं पढ़ते हैं, वहां सीआई सिस्टम (jenkins, buildbot) हो सकता है जो समर्थित पायथन संस्करणों (पहले/बाद में) का उपयोग करके यूनिट-परीक्षण चला सकता है।

एकाधिक पायथन स्थापना का प्रबंधन करने के लिए आप pythonz जैसे कुछ का उपयोग कर सकते हैं।

2

यह वास्तव में सुविधाजनक कैसे अपने virtualenv

स्थापित करने के लिए बस निर्देशों के सामान्य सेट में जोड़ने आप नए सदस्यों को जब देने के टीम में शामिल होने के लिए हर नए व्यक्ति बताने के लिए है करने के लिए नहीं होगा में शामिल होने के; ठीक उसी स्थान पर जब आप उन्हें आंतरिक दस्तावेज विकी के बारे में बताते हैं, वाईफाई का पासवर्ड और सैंडविच डिलीवरी की दुकान में फोन नंबर।

यह बेहद uncovenient होगा लोगों को बताने के लिए और उन्हें स्वयं को समझने के लिए; पहली बार जब वे collections.Counter का उपयोग करते हैं तो यह पता लगाने के लिए कि यह निर्माण टूट गया है क्योंकि सर्वर के पास 2.7.x

+3

यह फ़ॉलबैक योजना है, लेकिन मैं प्रोग्रामेटिक समस्या के लिए प्रोग्रामेटिक समाधान पसंद करूंगा। – Arion

+0

मुझे यकीन नहीं है कि यह प्रोग्रामेटिक समस्या के रूप में योग्य है; यह बस प्रलेखन/ऑन-बोर्डिंग मुद्दा है। यदि आपको * चाहिए *, तो आप अपनी तैनाती स्क्रिप्ट/हुक में एक चेक जोड़ सकते हैं जो पायथन संस्करण को सत्यापित करता है; लेकिन फिर बात क्या है? भले ही संस्करण मेल नहीं खाता है - आपका कोड अभी भी चल सकता है। आपको यह जांचना होगा कि आपका कोड 2.7 में पेश की गई सुविधाओं का उपयोग कर रहा है, जिसके लिए मुझे स्वचालित तरीके से पता नहीं है। –

+1

"मुझे यकीन नहीं है कि यह प्रोग्रामेटिक समस्या के रूप में योग्यता प्राप्त करता है; यह केवल दस्तावेज़ीकरण/ऑन-बोर्डिंग समस्या है।" उस तर्क से आपको एक आवश्यकता.txt नहीं होना चाहिए क्योंकि लोग मान सकते हैं कि यह लाइब्रेरी का नवीनतम संस्करण है और उस लाइब्रेरी से सुविधाओं का उपयोग करें जो वास्तव में उपयोग किए जा रहे संस्करण में मौजूद नहीं हैं। इसके अलावा यदि आपके पास यूनिट परीक्षण नहीं है (जो आपके उदाहरण में टूट जाएगा) तो आप वैसे भी एक जोखिम भरा खेल खेल रहे हैं। – semicolon

0

आपकी टिप्पणी के अनुसार, यहां केवल एकमात्र समस्या यह सुनिश्चित करनी चाहिए कि कोई 2.7-केवल कोड बनाता है यह आपके कोड बेस में है। इसके लिए मैं tox का उपयोग करने की सलाह देता हूं, और इसे जांचने के लिए 2.6 वातावरण बनाने के लिए कॉन्फ़िगर किया गया है, ताकि जब आपके सहकर्मी आपके परीक्षण सूट को चलाते हैं, तो परीक्षण 2.6 वर्चुअल वातावरण में चलाए जाते हैं।