मेरे सभी निष्पादन योग्य पाइथन स्क्रिप्ट की शुरुआत में मैं shebang लाइन डाल वातावरण। मेरे स्क्रिप्ट जल्दी से असफल क्योंकि मैं एक संगत अजगर संस्करण के लिए एक मैनुअल जांच हो:अजगर तैनाती और/usr/bin/env पोर्टेबिलिटी
if sys.version_info < (2, 4):
raise ImportError("Cannot run with Python version < 2.4")
मैं हर निष्पादन योग्य फ़ाइल पर कुटिया लाइन बदलने के लिए, अगर यह संभव है करने के लिए नहीं करना चाहते हैं; हालांकि, मैं env python
का परिणाम बदलने के लिए मशीन के लिए प्रशासनिक पहुँच नहीं है और मैं, एक विशेष संस्करण के लिए मजबूर करने के रूप में नहीं करना चाहती:
#!/usr/bin/env python2.4
मैं चाहूँगा इस प्रणाली क्योंकि हो सकता है से बचने के लिए पाइथन 2.4 की तुलना में एक नया संस्करण है, या पाइथन 2.5 हो सकता है लेकिन कोई पायथन 2.4 नहीं है।
सुरुचिपूर्ण समाधान क्या है?
[संपादित करें:] मैं सवाल खड़ी में पर्याप्त रूप से विशिष्ट नहीं था - मैं उन ~/bin
में मैन्युअल कॉन्फ़िगरेशन (जैसे पथ परिवर्तन या symlinking बिना आलेख निष्पादित करने और अपने पथ सुनिश्चित अजगर से पहले ~/bin
है और बताना चाहते 2.2 पथ)। शायद मैन्युअल tweaks को रोकने के लिए कुछ वितरण उपयोगिता की आवश्यकता है?
प्लस, सुझाव देते हैं कि वह निष्पादन योग्य और sys.argv सूची के साथ os.exec का उपयोग करता है। – tzot