2011-05-04 6 views
12

संक्षिप्त वर्णन
सवाल पूछने के लिए यदि का उपयोग कर आभासी वातावरण की आवश्यकता होती है, लेकिन जब इयान Bicking के virtualenv क्या सबसे अच्छा तरीका है यदि कोई हो, वातावरण Windows में प्रबंधन करने के लिए, का उपयोग करते हुए नहीं होती है। यदि आपके पास एकाधिक विचार हैं, तो कृपया कई बार जवाब दें ताकि सर्वोत्तम उत्तरों को वोट दिया जा सके। धन्यवाद!विंडोज पर पायथन वर्चुअल वातावरण का उपयोग करते समय नुकसान और कामकाज क्या हैं?

पृष्ठभूमि
जब अजगर में विकसित कर रहा है, मैं आम तौर पर उपयोग करने मैक OSX/जितना संभव हो उतना बैश प्रयास करें। हालांकि हमेशा ऐसी परियोजनाएं होती हैं जिन्हें मुझे हार्डवेयर/ड्राइवर समर्थन के लिए विंडोज का उपयोग करने के लिए मजबूर किया जाता है। इन परियोजनाओं के लिए, मैं पंजीकृत python.exe के साथ मॉड्यूल चलाने के लिए 'डबल क्लिक' विधि पर भरोसा करता हूं। 'डबल क्लिक' का उपयोग एक ही समय में एकाधिक थ्रेड/परीक्षण चलाने के लिए एक आसान तरीका है, बिना किसी नए कमांड प्रॉम्प्ट को खोलने के, आवश्यक निर्देशिका में ड्रिल करें, फिर 'python.exe module.py' टाइप करें ।

अंतिम लक्ष्य
मैं (केवल Windows)

इच्छा सूची कमांड प्रॉम्प्ट पर सामने आए बिना प्रबंधन और आभासी वातावरण का उपयोग करने के लिए एक तरह से करना चाहते हैं
1. सक्षम हो या तो पीपी (कमांड लाइन) या बाइनरी से मॉड्यूल स्थापित करने के लिए (उन लोगों के लिए जिन्हें किसी भी कारण से पीपी के साथ स्थापित नहीं किया जा सकता है)।
2. जीयूआई से virtualenv.exe के साथ वातावरण प्रबंधित करें। (बनाएँ, निकालें, सूचीबद्ध सक्रिय करने, आदि ...)

रिसर्च
अब तक मैं बिट और मेरी इच्छा सूची के टुकड़े अलग लिपियों/तरीकों का उपयोग कर ऐसा करने में सक्षम किया गया है, लेकिन अभी तक खोजने के लिए एक उन्हें गठबंधन करने का तरीका। मैं इनमें से अधिकांश को एक जीयूआई में गठबंधन करने की योजना बना रहा था, लेकिन सोचा कि यह पता लगाना बुद्धिमान होगा कि अच्छा कारण है कि यह पहले से मौजूद नहीं है।

वर्चुअल वातावरण में बाइनरी स्थापित करना एक स्क्रिप्ट का उपयोग करके काफी आसान किया जा सकता है जो विंडोज में पाइथन का संस्करण बदलता है। मैं अब कई महीनों के लिए स्क्रिप्ट का उपयोग कर रहा हूं लेकिन कुछ भी अच्छे नतीजे नहीं। देखें SO Question

वातावरण का प्रबंधन करना अधिक कठिन हिस्सा प्रतीत होता है।

यदि बैश का उपयोग करते हैं, तो virutalenvwrapper डॉग हेल्मैन द्वारा लिखित है। मैक ओएसएक्स में काम करते समय मैं इसका इस्तेमाल करता हूं और इसकी अनुशंसा करता हूं।

पावर शैल में इस प्रविष्टि का एक बंदरगाह here पाया गया है लेकिन अभी भी स्थापित होने के लिए किसी तृतीय पक्ष कमांड प्रॉम्प्ट इंटरफ़ेस की आवश्यकता होगी।

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

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

+1

ऐसा लगता है कि आप इस कार्य को पूरा करने के लिए प्रभावी रूप से .bat फ़ाइलों का उपयोग कर सकते हैं, लेकिन मुझे लगता है कि मुझे यकीन नहीं है कि "कमांड प्रॉम्प्ट पर होने के बिना" का क्या मतलब है। एक बैच फ़ाइल आपको अपने कमांड लाइन इनपुट को स्वचालित करने देगी, और यदि आपको अधिक कार्यक्षमता की आवश्यकता होती है तो आप इसे विंडोज स्क्रिप्ट या जेस्क्रिप्ट फ़ाइल के साथ एकीकृत कर सकते हैं। जस्टिन ड्रिस्कॉल के पेज पर उपयोग उदाहरणों को एक बैच फ़ाइल में रखा जा सकता है जिसे आप बस डबल-क्लिक कर सकते हैं। मुझे पता है कि यह वास्तव में एक जीयूआई नहीं है, लेकिन यह आपको अपने पैरामीटर/चर को केंद्रीकृत करने की अनुमति देगा। क्या आप यही सोच रहे हैं? या क्या मैंने गलती को याद किया है? –

+0

@ किट: यदि आप इसे एक उत्तर के रूप में नहीं जोड़ना चाहते हैं, तो यह उस कार्यक्षमता के करीब है जिसे मैं खोज रहा हूं। जब यह उत्तर होता है तो मैं और अधिक टिप्पणियां जोड़ूंगा (इसलिए यह दूसरों को भी लाभ पहुंचा सकता है)। –

उत्तर

2

आप zc.buildout पर एक नज़र डालना चाहते हैं। मान लें कि उपयोगकर्ता को पाइथन स्थापित है, आप वातावरण उत्पन्न करने के लिए bootstrap.py पायथन स्क्रिप्ट पर डबल क्लिक कर सकते हैं।

एक बार बनाया गया, bin\buildout.exe पर डबलक्लिकिंग निर्भरता को पुन: स्थापित करेगा और आपके द्वारा परिभाषित किसी भी पूर्व/पोस्ट हुक विधियों को चलाएगा। zc.buildout आपको प्लेटफ़ॉर्म विशिष्ट निर्भरताओं और गैर-पायथन निर्भरताओं को निर्दिष्ट करने की अनुमति देता है। इसके अतिरिक्त, आप bin\ फ़ोल्डर में बिल्डआउट के लिए अपनी स्क्रिप्ट को परिभाषित कर सकते हैं। उदाहरण के लिए, Plone टीम एक अच्छा लेख Buildout on Windows अपने स्वयं स्क्रिप्ट को संदर्भित चल रहा है bin\instance.exe

जबकि काफी पॉलिश नहीं मैक/लिनक्स/BSD पर virtualenv के रूप में, एक ही buildout वातावरण बनाया जाएगा (जैसे। बजाय bin/buildoutbin\buildout.exe) आपके पास क्रॉस-प्लेटफ़ॉर्म आवश्यकताएं प्राप्त करना।

+0

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

+1

बिल्डआउट आपके सिस्टम संकुल से अलग हो सकता है जैसे वर्चुअलएन्व कैसे काम करता है। उदाहरण के लिए मैं एक बिन/पायथन निष्पादन योग्य चलाऊंगा (बिन मेरे प्रोजेक्ट डीआईआर संरचना के अंदर है)। उस अजगर के पास केवल मेरे प्रोजेक्ट डीआईआर के अंदर अंडों तक पहुंच होगी। यह वर्चुअलएन्व के समान प्रभाव प्राप्त करता है। यह दर्द का एक और अधिक है, और सुपर आसान तैनाती की बड़ी जीत है। विकल्प, विकल्प ... –

+0

@ ब्रायन: उस स्पष्टीकरण के लिए धन्यवाद। मैं उस दिमागी सेट के साथ फिर से देख लूंगा। –

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