2011-09-27 5 views
42

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

संपादित करें: विंडोज़ पर शेबैंग समर्थन सिग्विन प्रदान किया गया है, लेकिन मैं विंडोज़ पर मूल विंडोज पायथन दुभाषिया का उपयोग करना चाहता हूं, सिगविन एक नहीं।

संपादित करें # 2: ऐसा लगता है कि शेबांग नोटेशन सिग्विन टर्मिनलों में फ़ाइल एसोसिएशन को ओवरराइड करता है। मुझे लगता है कि मैं सिग्विन पायथन और सिम्लिंक/यूएसआर/बिन/पायथन को विंडोज-मूल पायथन पर अनइंस्टॉल कर सकता हूं।

+6

का उपयोग pylauncher का एक संस्करण कुटिया समर्थन किसी भी प्रकार का है। आप .py फ़ाइलों के लिए पायथन दुभाषिया के साथ एक फ़ाइल एसोसिएशन बनाने का प्रयास कर सकते हैं। –

+0

निक ओडेल की टिप्पणी के बाद: जब भी मैंने विंडोज बॉक्स पर पायथन स्थापित किया है, तो इंस्टॉलेशन प्रक्रिया ने .py फ़ाइलों के लिए फ़ाइल एसोसिएशन बनाने का ख्याल रखा। यह हमेशा python.org साइट से विंडोज के लिए पायथन इंस्टॉलर का उपयोग कर रहा है। – GreenMatt

+0

@eryksun धन्यवाद। –

उत्तर

0

शेबांग के साथ नहीं ... लेकिन आप एक फ़ाइल एसोसिएशन स्थापित करने में सक्षम हो सकते हैं, this SO question देखें जो पर्ल और संबंधित उत्तरों से संबंधित है जो विंडोज और स्टडीन/आउट रीडायरेक्शन के साथ ज्ञात समस्याएं भी प्रासंगिक हैं।

31

जब तक आप साइगविन का उपयोग नहीं कर रहे हैं, तो विंडोज़ में कोई शेबैंग समर्थन नहीं है। हालांकि, जब आप पायथन स्थापित करते हैं, तो यह .py फ़ाइलों के लिए फ़ाइल एसोसिएशन के रूप में जोड़ता है। यदि आप कमांड लाइन पर अपनी स्क्रिप्ट का नाम डालते हैं, या विंडोज एक्सप्लोरर में डबल क्लिक करते हैं, तो यह पायथन के माध्यम से चलाएगा।

मेरी स्क्रिप्ट में #!/usr/bin/env python शेबैंग शामिल है। यह लिनक्स पर शेबैंग समर्थन के लिए अनुमति देता है। यदि आप इसे विंडोज़ मशीन पर पाइथन स्थापित करते हैं, तो फ़ाइल एसोसिएशन वहां होना चाहिए, और यह भी चलाएगा।

+4

पायथन संस्करण संख्या शामिल करना अच्छा है। "पायथन" प्रत्येक distro में "python2.7" से लिंक नहीं है। –

+0

@mid_kid इसलिए मैंने एनवी का उपयोग पाइथन के संस्करण को प्राप्त करने के लिए किया है जिसे उपयोगकर्ता ने अपने डिफ़ॉल्ट के रूप में निर्दिष्ट किया है। –

+1

मेरा मुद्दा यह है कि वह हमेशा सही नहीं होता है। विशेष रूप से जब आपकी स्क्रिप्ट वितरित करते हैं। –

2

pywin32 इंस्टॉल करें। अच्छी बात यह है कि यह पाइथन दुभाषिया के लिए * .py की फ़ाइल एसोसिएशन सेट करता है।

23

दस्तावेज़ों में Python Launcher for Windows के बारे में पढ़ें, जिसे प्रारंभ में PEP 397 में वर्णित किया गया था। यह देता है, आप एक ini (उदाहरण के लिए pypy का उपयोग करने के लिए), पर कस्टम शेबैंग कॉन्फ़िगरेशन को परिभाषित करते हैं लेकिन बॉक्स के बाहर आप #!/usr/bin/env python3, या #!C:\Python33\python.exe जैसे वास्तविक पथ वाले शेबैंग का उपयोग कर सकते हैं। आप शेबांग में कमांड लाइन विकल्प भी जोड़ सकते हैं। उदाहरण के लिए, स्क्रिप्ट समाप्त होने के बाद निम्न शेबैंग इंटरैक्टिव मोड में प्रवेश करने का विकल्प जोड़ता है: #!/usr/bin/python3 -i

पायथन 3.3 सहयोगी .py (कंसोल) और .pyw (GUI) स्क्रिप्ट फ़ाइल प्रकार क्रमशः नामित लॉन्चर्स, py.exe और pyw.exe के साथ, विंडोज़ पर स्क्रिप्ट के लिए शेबैंग समर्थन सक्षम करने के लिए। सभी उपयोगकर्ताओं के लिए स्थापित करते समय नए लॉन्चर रूट विंडोज फ़ोल्डर (यानी %SystemRoot%) में स्थापित होते हैं। अन्यथा आप cmd खोल में py.exe का उपयोग करने के लिए स्थापना निर्देशिका को PATH पर जोड़ना चाहेंगे। फिर कमांड लाइन से आप py -2, py -3, py -2.6, py -3.3-32 (32-बिट) चला सकते हैं, और इसी तरह से चल सकते हैं। एक स्क्रिप्ट के रूप में मॉड्यूल चलाने के लिए -m के साथ संयुक्त होने पर लॉन्चर आसान होता है, उदा। py -3 -m pip install

वहाँ भी है कि अलग से स्थापित किया जा सकता है अगर आप केवल मुझे लगता है कि विंडोज़ नहीं है पायथन 2.