2011-06-07 16 views
6

प्रबंधित करना मेरे कार्यस्थल में, मुझे कई (वर्तमान में दसियों, लेकिन संभवतः सैकड़ों अंततः) पाइथन वेब अनुप्रयोगों का प्रबंधन करना है, संभावित रूप से विभिन्न ढांचे, पुस्तकालयों, आदि (सभी विभिन्न संस्करणों पर) चल रहे हैं। वर्चुअलएन्व अब तक प्रबंधन में एक लाइफसेवर रहा है, लेकिन मैं अभी भी चीजों को बेहतर तरीके से प्रबंधित करने में सक्षम होना चाहता हूं, खासकर जब पैकेज उन्नयन के प्रबंधन की बात आती है।कई पायथन परियोजनाओं/वर्चुअलएएनएस

मैं कुछ परिदृश्यों

विकल्प 1 के बारे में सोचा गया है: पिप का उपयोग कर प्रत्येक virtualenv में प्रत्येक परियोजना के लिए सभी आवश्यक मॉड्यूल स्थापित करें, उन्नयन प्रत्येक व्यक्तिगत रूप से आवश्यक के रूप में। इसके लिए प्रत्येक अपग्रेड के लिए एक महत्वपूर्ण समय लागत की आवश्यकता होगी और चीजों का ट्रैक रखने के लिए अतिरिक्त दस्तावेज की आवश्यकता होगी। कुछ प्रबंधन स्क्रिप्टिंग द्वारा सुविधा दी जा सकती है।

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

विकल्प 3: उपरोक्त दो को हाइब्रिडाइज करें, सबसे आम पुस्तकालयों को केंद्रीकृत करना और/या उन लोगों को अपग्रेड करने और प्रत्येक वर्चुअलनेव को स्थानीय रूप से स्थापित करने की आवश्यकता है।

क्या किसी और की समान स्थिति है? इसे संभालने का सबसे अच्छा तरीका क्या है?

उत्तर

2

आप zc.buildout का उपयोग करने पर विचार कर सकते हैं। सादे पाइप/वर्चुअलनेव से स्थापित करना अधिक परेशान है, लेकिन यह आपको स्वचालन के लिए और अवसर प्रदान करता है। यदि डिस्क स्पेस उपयोग कोई मुद्दा नहीं है, तो मैं सुझाव दूंगा कि आप प्रत्येक प्रोजेक्ट के लिए अलग-अलग वातावरण का उपयोग करते रहें ताकि आप उन्हें एक समय में अपग्रेड कर सकें।

+0

ऐसा लगता है कि बिल्डआउट इस तरह की चीज़ के लिए कुछ अच्छे उपकरण प्रदान करता है। मुझे यह देखने के लिए थोड़ा और गहराई से देखना होगा कि यह हमारे मुद्दों को स्वचालित करने के लिए कैसे काम करेगा। –

0

हमारे पास हमारे प्रोजेक्ट रूट पर एक आवश्यकता.pip फ़ाइल है जिसमें पाइप स्थापित करने के लिए संकुल शामिल हैं, इसलिए स्वचालित रूप से अपग्रेड करना अपेक्षाकृत आसान है। मुझे यकीन नहीं है कि सिम्लिंकिंग इस मुद्दे को हल करेगी - इससे आपकी परियोजनाओं के सबसेट में उन्नयन करना मुश्किल हो जाएगा। यदि डिस्कस्पेस कोई मुद्दा नहीं है, और आप पैकेजों को सूचीबद्ध और अपग्रेड करने के लिए कुछ सरल स्क्रिप्ट लिख सकते हैं, तो मैं वर्चुअलएन्ग के साथ चिपकूँगा।

संबंधित मुद्दे