2012-02-12 14 views
5

क्या मैं पाइथन 2.6 से पाइथन 2.7 मॉड्यूल का उपयोग कर सकता हूं? या एक ही प्रभाव प्राप्त करने के लिए कुछ करो?क्या मैं पाइथन 2.6 से पायथन 2.7 सबप्रोसेस मॉड्यूल का उपयोग कर सकता हूं?

मैं अजगर 2.6 उपयोग करने के लिए सीमित कर रहा हूँ, लेकिन एक issue अजगर 2.6 द्वारा प्रदान की subprocess मॉड्यूल में मौजूद है। यह पायथन 2.7 में तय है। मैं उत्सुक हूं कि अगर मैं एक दिन को अपग्रेड करने तक बग अस्थायी रूप से को सिडस्टेप करने के लिए पीआईपी (या समतुल्य) का उपयोग करके इसे अपनाना चाहता हूं। मैं ऐसा कैसे कर पाऊंगा?

+3

बग क्या है? शायद एक वर्कअराउंड है जो पाइथन संस्करणों को मिश्रण करने की कोशिश करने से आसान है (जो सामान्य रूप से संभव नहीं है)। –

+0

यह सच नहीं है कि 'subprocess' पूरी तरह से पायथन में लिखा गया है। विंडोज़ पर, एक [भाग सी में लिखा गया है] (http://hg.python.org/cpython/file/e0c353a43c7d/PC/_subprocess.c)। –

+0

बमर। मैं इस मुद्दे का जिक्र कर रहा हूं: http://bugs.python.org/issue9127 (अद्यतन प्रश्न भी)। – sholsapp

उत्तर

1

एटियेन पेरोट ने पाइथन 3.2 सबप्रोसेस बैकपोर्ट का उपयोग करने के लिए पाइथन इंस्टॉलेशन के आसपास हैकिंग के बजाय http://code.google.com/p/python-subprocess32/ पर उपलब्ध सुझाव दिया।

यह मुझे मॉड्यूल को अपने वर्चुअल वातावरण के साइट-पैकेज में स्थापित करने देता है, और प्रश्न में उल्लिखित बग को ठीक करने के लिए http://hg.python.org/cpython/rev/767420808a62 के साथ सबप्रोसेस कोड पैच करने देता है। इसके बाद, एक साधारण import subprocess32 as subprocess समस्या को ठीक किया गया।

2

हाँ, आमतौर पर। 2.6 और 2.7 के बीच का अंतर बहुत बड़ा नहीं है, क्योंकि 2.7 को 2.6 और 3.0 के बीच एक पुल माना जाता है। नतीजतन, 2.7 के लिए अधिकांश पायथन मॉड्यूल इन दोनों संस्करणों में काम करेंगे (आमतौर पर 3.0 से 2.6 में बेहतर)।

बेशक, जवाब जानने का एकमात्र निश्चित तरीका है कोशिश करना!

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

+0

मुझे लगता है कि मेरा प्रश्न है, यह कैसे प्राप्त करेगा? मैं पाइथन पैकेजिंग में नहीं जानता हूं क्योंकि मैं अभी तक बनना चाहता हूं। – sholsapp

+0

बस पाइथन 2.7 पर पैकेज को उसी तरह इंस्टॉल करें। आमतौर पर '/usr/bin/python2.7 setup.py install' ->' /usr/bin/python2.6 setup.py install'। केवल अंतर ही पाइथन दुभाषिया है जिसे आप मॉड्यूल स्थापित करने के लिए कहते हैं। कुछ मॉड्यूल में अतिरिक्त स्थापना निर्देश हो सकते हैं, जिसके लिए आपको इसे प्रश्न में मॉड्यूल के नाम को समझना होगा या पोस्ट करना होगा (और यदि आपको इसे इंस्टॉल करने में समस्या हो रही है, तो शायद इसे किसी अन्य प्रश्न में जाना होगा) –

+1

यदि आप हैं पैकेज स्थापित करने के लिए 'पीपी' का उपयोग करके, आप पाइथन पर्यावरण को' --environment =/usr/bin/python2.6' या ​​'--environment =/path/to/environment' का उपयोग करके संकुल को संस्थापित करने के लिए निर्दिष्ट कर सकते हैं। –

1

तुम सच में अजगर 2.6 पर रहने के लिए, लेकिन यह भी इस बग को ठीक करने, मैं स्रोत से अजगर 2.6 संकलन का सुझाव दे सकता चाहते हैं चाहते हैं, लेकिन भी 2.7 से subprocess मॉड्यूल के लिए प्रासंगिक बग फ़िक्स कोड लागू।

आप अजगर 2.6 के एक कस्टम निर्माण के साथ खत्म हो जाएगा। बेशक, यदि आप मानक 2.6 पर फंस गए हैं क्योंकि आप किसी भी विभिन्न संस्करण को स्थापित करने में असमर्थ हैं, तो इससे मदद नहीं मिलेगी।

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