.Py विस्तार के बिना टर्मिनल से अजगर स्क्रिप्ट चल रहा है


14

मैं एक अजगर स्क्रिप्ट कॉल करना चाहते हैं script.py बस टाइप करके टर्मिनल से स्क्रिप्ट । क्या यह संभव है? यदि हां, तो कैसे?

मुझे पता है कि मैं स्क्रिप्ट के शीर्ष पर #! / Usr / bin / env python जोड़कर python script.py टाइप करने से बच सकता हूं , लेकिन स्क्रिप्ट चलाने के लिए मुझे अभी भी प्रत्यय .py जोड़ना होगा ।

जवाबों:


21

यूनिक्स / लिनक्स फ़ाइल सिस्टम एक्सटेंशन पर निर्भर नहीं करता है जिस तरह से विंडोज़ करता है। .pyइसे चलाने के लिए आपको फ़ाइल के अंत में आवश्यकता नहीं होनी चाहिए ।

आप फ़ाइल को दुभाषिये के साथ कॉल करके चला सकते हैं:

python ScriptFile

या इसे निष्पादन योग्य और पहली पंक्ति (जैसे #!/usr/bin/python) पर दुभाषिया को परिभाषित करके ।

यदि आप फ़ाइल को निष्पादित करने में असमर्थ हैं:

/Path/to/ScriptFile

के साथ अनुमतियों की जाँच करें

ls -l ScriptFile

आपको निष्पादन योग्य ध्वज जोड़ने की आवश्यकता हो सकती है और chmodयह आपके लिए निष्पादित होगा।

यदि आप नियमित रूप से कस्टम स्क्रिप्ट का उपयोग कर रहे हैं, तो आप यह सुनिश्चित करना चाहते हैं कि जिस निर्देशिका को आप संग्रहीत करते हैं, वह PATHपर्यावरण चर में जोड़ी जाए ।


1
फ़ाइल ~ / कार्यक्षेत्र / अजगर में है। मैंने अपने पथ में ~ / कार्यक्षेत्र / अजगर जोड़ा है, मैंने sudo chmod a + x script.py ", और मैंने शबंग लाइन (#! / Usr / bin / env python) को स्क्रिप्ट के शीर्ष पर जोड़ा है। । मैं * script.py टाइप करके स्क्रिप्ट चला सकता हूं , लेकिन सिर्फ टाइपिंग स्क्रिप्ट काम नहीं करती।
jmau5

2
यूनिक्स / लिनक्स में सब कुछ एक फाइल है और इसके फ़ाइल नाम पर प्रतिक्रिया देता है। आप Script.py को Script नहीं कह सकते। स्क्रिप्ट से स्क्रिप्ट में नाम बदलने की कोशिश करें और इसे आपकी समस्या को ठीक करना चाहिए।
पैट्रिक

माफ़ कीजिए मैंने गलत समझा! सब कुछ हल हो गया, धन्यवाद!
jmau5

5

.pyविस्तार स्क्रिप्ट चलाने के लिए अनावश्यक है। आपको केवल स्क्रिप्ट को निष्पादन योग्य बनाना होगा (जैसे कि रनिंग द्वारा chmod a+x script) और शेबंग लाइन ( #!/usr/bin/env python) जोड़ें ।


पैट्रिक के जवाब पर मेरी टिप्पणी देखें।
jmau5

4

एक विकल्प के रूप में आप अपनी स्क्रिप्ट (एक .pyफ़ाइल) के लिए रैपर बना सकते हैं :

उदाहरण के लिए, आपके पास एक स्क्रिप्ट है runme.pyताकि आप स्क्रिप्ट runmeको लपेटने के लिए नई फ़ाइल बना सकें :

#!/usr/bin/env python
import runme

और फिर शेल में runme.pyइनवॉइस करके कार्यक्षमता को कॉल करें runme

यह मल्टीप्लास्टिक स्क्रिप्ट के लिए उपयोगी है, विंडोज प्लेटफॉर्म पर कारण आप .pyबिना एक्सटेंशन के सिर्फ नाम के द्वारा फाइल की जा सकती हैं और हेडर में शेबंग कर सकते हैं, लेकिन लिनक्स प्लेटफॉर्म पर आप नहीं जा सकते हैं और इस तरह से रैपर बाहर आता है।

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