मैं डेबियन लिनक्स का उपयोग कर रहा हूं।
मैं सोच रहा था कि क्या टर्मिनल में सभी पायथन लिपियों को टाइप script.py
करने के बजाय (इसके बजाय python script.py
) चलाने के लिए कॉन्फ़िगर करने का कोई तरीका है ।
मैं डेबियन लिनक्स का उपयोग कर रहा हूं।
मैं सोच रहा था कि क्या टर्मिनल में सभी पायथन लिपियों को टाइप script.py
करने के बजाय (इसके बजाय python script.py
) चलाने के लिए कॉन्फ़िगर करने का कोई तरीका है ।
जवाबों:
आपको दो काम करने होंगे:
chmod +x script.py
कर्नेल को यह बताने के लिए कि क्या दुभाषिया उपयोग करना है, एक शेबंग का उपयोग करें। स्क्रिप्ट की शीर्ष पंक्ति को पढ़ना चाहिए:
#!/usr/bin/python
यह मानता है कि आपकी स्क्रिप्ट डिफ़ॉल्ट अजगर के साथ चलेगी। यदि आपको एक विशिष्ट संस्करण की आवश्यकता है, तो बस शेलबैंग में निर्दिष्ट करें:
#!/usr/bin/python2.7
अब आप टाइप कर सकते हैं:
./script.py
यदि स्क्रिप्ट आपकी वर्तमान निर्देशिका में है, या:
script.py
यदि स्क्रिप्ट का स्थान आपके PATH में हो, या:
path/to/script.py
अन्यथा।
bash
कि निष्पादित करते समय फ़ाइल पढ़ता है ...
./script.py
, नहींscript.py
लिनक्स के तहत आप बस हैशबैंग (उर्फ शबंग) का उपयोग कर सकते हैं। लाइन जोड़ें
#!/usr/bin/python
यदि आप डिफ़ॉल्ट अजगर दुभाषिया निष्पादित करना चाहते हैं।
#!/path/to/python[x.x]
कुछ विशिष्ट संस्करण का उपयोग करने के लिए, या
#!/usr/bin/env python
यदि आप चाहते हैं कि पर्यावरण आपके लिए अजगर ढूंढे।
आपको स्क्रिप्ट को निष्पादन योग्य बनाने के लिए भी आवश्यक होगा
chmod +x script[.py]
उपयोग:
#!/usr/bin/env python
यह सुनिश्चित करेगा कि उपयोगकर्ता जिस अजगर का उपयोग करने की उम्मीद करता है वह वह होगा जो स्क्रिप्ट चलाता है। यह विशेष रूप से महत्वपूर्ण है यदि उपयोगकर्ता किसी दिए गए वातावरण में एक विशिष्ट संस्करण अजगर का उपयोग करने के लिए virtualenv का उपयोग कर रहा है।
नीचे के रूप में अपनी स्क्रिप्ट के शीर्ष पर एक शबंग रेखा का उपयोग करें:
उपयुक्त पायथन संस्करण अपडेट करें जिस पर आप स्क्रिप्ट निष्पादित करना चाहते हैं। उदाहरण के लिए अजगर 3.6 इसके लिए
डिफ़ॉल्ट दुभाषिया के लिए
नोट: सुनिश्चित करें कि स्क्रिप्ट में निष्पादन योग्य अनुमति है।
#!/usr/bin/env python
, अगर उपयोगकर्ता के पास अजगर (जैसे,/usr/local/bin
) का एक स्थानीय निर्माण होता है, जिसके साथ वे स्क्रिप्ट को चलाते हैं।