स्पष्ट रूप से `अजगर` को लागू किए बिना पायथन स्क्रिप्ट चलाएं


39

मैं डेबियन लिनक्स का उपयोग कर रहा हूं।

मैं सोच रहा था कि क्या टर्मिनल में सभी पायथन लिपियों को टाइप script.pyकरने के बजाय (इसके बजाय python script.py) चलाने के लिए कॉन्फ़िगर करने का कोई तरीका है ।

जवाबों:


58

आपको दो काम करने होंगे:

  • सुनिश्चित करें कि फ़ाइल निष्पादन योग्य है: chmod +x script.py
  • कर्नेल को यह बताने के लिए कि क्या दुभाषिया उपयोग करना है, एक शेबंग का उपयोग करें। स्क्रिप्ट की शीर्ष पंक्ति को पढ़ना चाहिए:

    #!/usr/bin/python
    

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

    #!/usr/bin/python2.7
    

अब आप टाइप कर सकते हैं:

    ./script.py

यदि स्क्रिप्ट आपकी वर्तमान निर्देशिका में है, या:

    script.py

यदि स्क्रिप्ट का स्थान आपके PATH में हो, या:

    path/to/script.py

अन्यथा।


32
आम तौर पर उपयोग करने के लिए यह एक बेहतर विचार है #!/usr/bin/env python, अगर उपयोगकर्ता के पास अजगर (जैसे, /usr/local/bin) का एक स्थानीय निर्माण होता है, जिसके साथ वे स्क्रिप्ट को चलाते हैं।
sapi

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

3
ऐसा नहीं है bashकि निष्पादित करते समय फ़ाइल पढ़ता है ...
unperson325680

@progo यह सच है - ध्यान दें कि यदि आपको ऐसा उत्तर दिखाई देता है जो आपको लगता है कि सुधार से लाभ होगा, तो आगे बढ़ें और इसे संपादित करें, सुधार हमेशा स्वागत है
पॉल

और आपको करना होगा ./script.py, नहींscript.py
पॉल ड्रेपर

33

लिनक्स के तहत आप बस हैशबैंग (उर्फ शबंग) का उपयोग कर सकते हैं। लाइन जोड़ें

#!/usr/bin/python

यदि आप डिफ़ॉल्ट अजगर दुभाषिया निष्पादित करना चाहते हैं।

#!/path/to/python[x.x]

कुछ विशिष्ट संस्करण का उपयोग करने के लिए, या

#!/usr/bin/env python

यदि आप चाहते हैं कि पर्यावरण आपके लिए अजगर ढूंढे।

आपको स्क्रिप्ट को निष्पादन योग्य बनाने के लिए भी आवश्यक होगा

chmod +x script[.py] 

2

उपयोग:

#!/usr/bin/env python

यह सुनिश्चित करेगा कि उपयोगकर्ता जिस अजगर का उपयोग करने की उम्मीद करता है वह वह होगा जो स्क्रिप्ट चलाता है। यह विशेष रूप से महत्वपूर्ण है यदि उपयोगकर्ता किसी दिए गए वातावरण में एक विशिष्ट संस्करण अजगर का उपयोग करने के लिए virtualenv का उपयोग कर रहा है।


0

नीचे के रूप में अपनी स्क्रिप्ट के शीर्ष पर एक शबंग रेखा का उपयोग करें:

! / Usr / bin / अजगर

उपयुक्त पायथन संस्करण अपडेट करें जिस पर आप स्क्रिप्ट निष्पादित करना चाहते हैं। उदाहरण के लिए अजगर 3.6 इसके लिए

! /usr/bin/python3.6

डिफ़ॉल्ट दुभाषिया के लिए

! / Usr / bin / अजगर

नोट: सुनिश्चित करें कि स्क्रिप्ट में निष्पादन योग्य अनुमति है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.