सीधे पायथन प्रोग्राम कैसे चलाएं?


13

सीधे पायथन प्रोग्राम कैसे चलाएं?

मैंने gedit में एक .py फ़ाइल (कहते हैं, mnik.py ) बनाई है । यह टर्मिनल में आसानी से चलता है।

कमान जाती है

python3 mnik.py

लेकिन जब भी मैं फाइल पर क्लिक करता हूं तो इसे gedit के साथ खोला जाता है। मैं इसे सीधे क्लिक करके नहीं चला सकता।

क्या करें?



4
@kasperd python3कमांड लाइन पर एक तर्क के साथ टाइप करना पायथन स्क्रिप्ट को चलाने का एक शानदार तरीका है। यह वास्तव में एक प्रोग्राम है जो एक टर्मिनल और तर्क की आवश्यकता है चलाने के लिए सबसे आसान तरीका है (मेरे अपने लिपियों के कई तरह, लेकिन यह भी कार्यक्रमों की तरह mercurial, sphinx)। यह बताने के लिए कि मैं 20+ वर्षों से क्या कर रहा हूँ, यह उचित तरीका नहीं है?
एंथन

3
@kasperd एक सही लिखित पाइथन लिपि (या प्रोग्राम) में एक शबंग रेखा नहीं है। यदि यह नहीं है तो यह अभी भी हर तरह से पायथन लिपि है। उस लिपि को केवल आपके द्वारा पसंद किए जा रहे शॉर्ट-हैंड फॉर्म में लिनक्स गोले से निष्पादित नहीं किया जा सकता है। ऐसे वातावरण भी हैं जिनके लिए पाइथन लिपियों की आवश्यकता नहीं होती है, जिनमें एक शबंग रेखा होती है और उन्हें डबल क्लिक करके स्क्रिप्ट शुरू करने की अनुमति होती है।
एंथन

1
@kasperd पायथन स्क्रिप्ट का उपयोग करने के लिए कर्नेल को क्या चाहिए, का उपयोग करके ./scriptnameअपने दावे को मान्य नहीं करें कि कमांडलाइन से स्क्रिप्ट का उपयोग करके चल रहा है python3। अजगर लिपियों को चलाने के अलग-अलग तरीके हैं और करना python3 ./mnik.pyभी चीजों को करने का एक उचित तरीका है, यह सिर्फ अलग है (और कम से कम आपको python3 मिलता है इस तरह से और नहीं python2 के रूप में अब तक के सबसे अधिक उत्तरों के साथ अधिक संभावना है
एंथन

1
<Language> <script> का उपयोग करना स्क्रिप्ट चलाने के लिए पूरी तरह से मान्य और स्वीकृत तरीका है। यह सुझाव दिया जाता है कि बुरा व्यवहार करना चाहिए।
जैकब व्लिजम

जवाबों:


26

दो चीजों की जरूरत है।

  1. एक स्क्रिप्ट #!में ओएस को बताने वाली रेखा होनी चाहिए जो उपयोग करने के लिए दुभाषिया है। आपके मामले में कोड में आपकी पहली पंक्ति होनी चाहिए#!/usr/bin/env python3
  2. आपको फ़ाइल प्रबंधक खोलने की जरूरत है, संपादन -> प्राथमिकताएं -> व्यवहार पर जाएं, और निष्पादन योग्य फ़ाइलों के साथ क्या करना है, इसका चयन करें

    यहाँ छवि विवरण दर्ज करें

    1. अंत में, सुनिश्चित करें कि आपकी फ़ाइल में वास्तव में निष्पादन योग्य अनुमतियाँ सेट हैं। टर्मिनल में आप कर सकते हैं chmod +x /path/to/script.pyऔर जीयूआई में, फ़ाइल पर राइट क्लिक करें और उसके गुणों को बदल दें -> अनुमतियाँ

    यहाँ छवि विवरण दर्ज करें

    यहाँ छवि विवरण दर्ज करें

नोट शेबंग लाइन के बारे में

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

स्क्रिप्ट आउटपुट पर ध्यान दें:

यदि आपकी स्क्रिप्ट आउटपुट को कंसोल के लिए प्रिंट करती है, तो इसके लिए टर्मिनल विंडो या वैकल्पिक रूप से GUI डायलॉग जैसे उपयोग करने की आवश्यकता होगी zenityRun in Terminalयदि आप कोड देखना चाहते हैं तो विकल्प का उपयोग करना पसंद करें । यदि आप चाहते हैं कि स्क्रिप्ट कंसोल आउटपुट - उपयोग Runविकल्प को देखे बिना कुछ कर सके ।

यहाँ छवि विवरण दर्ज करें

इसके अलावा, यदि आपके पास कमांड लाइन पैरामीटर हैं, जैसे sys.argv[1]कि स्क्रिप्ट में, आप उन्हें तब तक सेट नहीं कर सकते जब तक कि आपके पास टर्मिनल विंडो खुली न हो।


1
@PriyadarshiPaul Filesलॉन्चर पर प्रोग्राम के समान है । में windows-बात है कि फाइल होगा एक्सप्लोरर याMy Computer
सर्गी Kolodyazhnyy

@PriyarsarshiPaul यह nautilusटर्मिनल में है
नाली


3
#!/usr/bin/env pythonसबसे उबंटू सिस्टम पर Python2 को लागू करेगा। हालाँकि आप पायथन 3 के लिए संगत पायथन स्क्रिप्ट लिख सकते हैं, जो पायथन 2 के साथ संगत है, मैं यह नहीं मानूंगा कि ओपी ने ऐसा किया है। #!/usr/bin/env python3एक अधिक उपयुक्त शेबंग लगता है
एंथन

1
और हम यहां आर्क लिनक्स क्यों ला रहे हैं? शायद मैं थोड़ा सा मतलब के रूप में आ सकता हूँ, लेकिन हम यहाँ उबंटू की बात कर रहे हैं। डिफ़ॉल्ट रूप से Ubuntu पर python2.7 से जुड़ा हुआ है। यदि आप सॉफ़्टवेयर विकसित कर रहे हैं, तो आपको संभवतः इस बात की जानकारी होनी चाहिए कि आप अपने OS के डिफ़ॉल्ट संस्करण के अलावा किसी अन्य लिंक का उपयोग कहाँ करते हैं, तो स्पष्ट रूप से निर्दिष्ट करें। ज़रूर, हम प्रत्येक व्यक्तिगत प्रश्न को पूरा कर सकते हैं, लेकिन ज़ोर से रोने के लिए - यदि आप कोड करते हैं, तो इसे सही करें।
सर्गी कोलोडियाज़नी

3

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

अपने पायथन इंस्टालेशन का पता लगाएं

$ which python
/usr/bin/python

अपने प्रोग्राम की टॉप लाइन में प्रोग्राम लोकेशन को #!सामने वाले के साथ जोड़ें

#!/usr/bin/python

# Python code goes here....

निष्पादन अधिकार रखने के लिए पायथन स्क्रिप्ट सेट करें

$ chmod 700 test.py

अब आप स्क्रिप्ट को सीधे चला सकते हैं

$ ./test.py

Test.py के लिए कोड सूची

#!/usr/bin/python

print "test"

2

यदि आप इस प्रोग्राम को टाइप किए बिना चलाना चाहते python3 mnik.pyहैं तो आपको स्क्रिप्ट को निष्पादन योग्य बनाना होगा और यह सुनिश्चित करना होगा कि python3इसे चलाने के लिए उपयोग किया जाता है।

पहला आप दौड़कर कर सकते हैं

 chmod +x mnik.py

दूसरा आप स्क्रिप्ट की पहली पंक्ति के रूप में जोड़कर कर सकते हैं जो एक शेबांग लाइन है जो python3 को आमंत्रित करती है । उन सभी उबंटू प्रणालियों पर, जिनके साथ मैंने काम किया है python3

#!/usr/bin/env python3

उन दो परिवर्तनों के बाद आप टाइप कर सकते हैं /path/to/mnik.py, ./mnik.pyया सिर्फ mnik.py(बाद वाले को आपके PATH में स्क्रिप्ट की आवश्यकता होती है)।

आप ये परिवर्तन कर साथ-साथ आप का नाम बदलने पर विचार करना चाहते हो सकता है mnik.pyके लिए mnik, यह है कि वे आदेश दिए गए PyPI पर प्रकाशित कर रहे साथ अजगर पैकेज के साथ आम बात।


ठीक है, इनमें से कोई भी अब काम नहीं करता है
प्रियदर्शी पॉल

क्या ठीक है"? "ये" क्या दर्शाता है?
एंथॉन

यह कह रहा है ** usr / bin / env: खराब दुभाषिया: ऐसी कोई फ़ाइल या निर्देशिका **
प्रियदर्शी पॉल

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