अजगर कार्यक्रम को निष्पादन योग्य बनाने के लिए मैं लिनक्स पर क्या उपयोग करूं?


88

मैंने सिर्फ एक लिनक्स सिस्टम (कुबंटू) स्थापित किया था और सोच रहा था कि क्या लिनक्स के लिए अजगर कार्यक्रमों को निष्पादन योग्य बनाने का कार्यक्रम है।


पहले से ही यहाँ उत्तर दिया गया http: //stackoverflow.com/questions/193077 / ...
एंड्रयू बेयर


2
नहीं, इसका उत्तर वहां नहीं है। यह सवाल वितरण मुद्दों के बारे में सवाल करता है।
tzot

नहीं, यह कोई धोखा नहीं है। यह प्रश्न लाइब्रेरी उपलब्धता और अनुकूलता के मुद्दों से बचने के लिए अजगर सॉफ्टवेयर वितरित करने से संबंधित है।
tzot

जवाबों:


157

इसे अपनी लिपि की पहली पंक्ति में रखें:

#!/usr/bin/env python

फ़ाइल को निष्पादन योग्य बनाएं

chmod +x myfile.py

के साथ निष्पादित करें

./myfile.py

6
मैं उलझन में हूं। जब हैश इसे टिप्पणी लाइन बनाने वाला हो तो "#! / Usr / bin / env python" कैसे काम करता है? मैंने हैश लाइन के बिना स्क्रिप्ट चलाने की कोशिश की, लेकिन यह काम नहीं किया। तो स्पष्ट रूप से लाइन की आवश्यकता है, लेकिन अगर यह एक टिप्पणी है तो यह कैसे काम करता है?
नवगीत

5
यदि आप एक साथी प्रोग्रामर को स्क्रिप्ट भेज रहे हैं, तो यह ठीक है। लेकिन यह अंतिम उपयोगकर्ताओं के लिए पायथन कार्यक्रमों को वितरित करने का एक उपयुक्त तरीका नहीं है। यदि उपयोगकर्ता के पास पायथन स्थापित नहीं है तो क्या होगा? यदि वे करते हैं तो क्या होगा, लेकिन यह एक अलग संस्करण है जिसमें आपने कार्यक्रम लिखा है? कुल मिलाकर यह केवल कुछ प्रतिशत उपयोगकर्ताओं के लिए काम करेगा, खासकर विंडोज पर।
जोनाथन हार्टले

5
@ मैथमैनीक यदि आप आगे बढ़ रहे हैं, तो लगभग 15% उपयोगकर्ता आपके एप्लिकेशन को चलाने में असमर्थ होंगे। यह एक भयावह समर्थन बोझ होगा, एक काल्पनिक रूप से शत्रुतापूर्ण उपयोगकर्ता अनुभव का उल्लेख नहीं करने के लिए, जो घृणित "एप्लिकेशन एक्स बेकार" पदों की एक धार उत्पन्न करेगा। मैं अपने दावे के साथ खड़ा हूं कि एंड-यूजर्स को एप्लिकेशन वितरित करने का यह उपयुक्त तरीका नहीं है।
जोनाथन हार्टले

3
@ प्रह्लादयेरी उपयोग # / usr / bin / env python3
किंग्डियन

4
@Nav जिसे शेबंग कहा जाता है । इसकी टिप्पणी इसलिए की गई क्योंकि इसकी व्याख्या अजगर द्वारा नहीं की जानी चाहिए। यह ऑपरेटिंग सिस्टम को जानकारी देता है। अधिक विशेष रूप से यह कहता है कि स्क्रिप्ट को निष्पादित करने के लिए किस कार्यक्रम का उपयोग किया जाना चाहिए।
15

16

यदि आप पायथन में एक स्टैंड-अलोन बाइनरी एप्लिकेशन प्राप्त करना चाहते हैं, तो py2exe या PyInstaller जैसे टूल का उपयोग करने का प्रयास करें ।


कीवर्ड: स्टैंडअलोन
डी एडम्स

क्या मैं PyInstaller का उत्पादन घटा सकता हूं?
SuB

14

आप PyInstaller का उपयोग कर सकते हैं। यह एक बिल्ड डिस्ट उत्पन्न करता है ताकि आप इसे एक "बाइनरी" फ़ाइल के रूप में निष्पादित कर सकें।

http://pythonhosted.org/PyInstaller/#using-pyinstaller

पायथन 3 में बिल्ड डिस्टर्ब का मूल विकल्प भी है:

https://docs.python.org/3/distutils/builtdist.html


प्रश्न अजगर लिपियों को exe / योगिनी फाइलों को बनाने के बारे में नहीं है
warvariuc

8
क्षमा करें, लेकिन ऐसा लगता है कि सवाल सिर्फ यह है! "सोच रहा था कि क्या लिन के लिए अजगर कार्यक्रमों को निष्पादन योग्य बनाने का कार्यक्रम है।"
लियो पेपे

बहुत बहुत धन्यवाद, @LeoPepe, मैंने अभी-अभी अपनी क्लास के लिए एक अटेंडेंस टेकर बनाया, जो एक फाइल से इनपुट (उपस्थित छात्रों के नाम) लेता है और एक इंस्ट्रूमेंट फाइल में उपस्थिति देता है, बस pyinstaller की मदद से बनाई गई एक रननीय स्क्रिप्ट पर क्लिक करके।
जीनियस

4

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

तो यह आपके ऑपरेटिंग सिस्टम पर निर्भर करता है जहां यह अजगर इंटरप्रेटर रखता है। जैसा कि मेरे पास उबंटू है ऑपरेटिंग सिस्टम के रूप में यह अजगर दुभाषिया रखता है /usr/bin/pythonइसलिए मुझे अपनी अजगर स्क्रिप्ट की शुरुआत में यह पंक्ति लिखनी होगी;

#!/usr/bin/python

अपना कोड पूरा करने और सहेजने के बाद

  1. अपना कमांड टर्मिनल शुरू करें

  2. सुनिश्चित करें कि स्क्रिप्ट आपकी वर्तमान कार्यशील निर्देशिका में निहित है

  3. प्रकार chmod +x script_name.py

  4. अब आप स्क्रिप्ट पर क्लिक करके स्क्रिप्ट शुरू कर सकते हैं। एक अलर्ट बॉक्स दिखाई देगा; अलर्ट बॉक्स में "रन" या "टर्मिनल में रन" दबाएं; या, टर्मिनल प्रॉम्प्ट पर टाइप करें./script_name.py


4

यदि कोई निष्पादन योग्य बनाना चाहता है hello.py

सबसे पहले उस रास्ते को खोजें जहां अजगर आपके ओएस में है: which python

यह आमतौर पर "/ usr / bin / python" फ़ोल्डर के अंतर्गत रहता है।

hello.pyएक की पहली पंक्ति में जोड़ना चाहिए:#!/usr/bin/python

फिर लिनक्स कमांड के माध्यम से chmod

बस इसे निष्पादन योग्य बनाना चाहिए: chmod +x hello.py

और के साथ निष्पादित करें ./hello.py


1

मैं निम्नलिखित कार्य करता हूं:

  1. डाल #! / usr / bin / env python3 स्क्रिप्ट के शीर्ष पर
  2. chmod u + x file.py
  3. फ़ाइल नाम में .pyand .py को बदलें

यह अनिवार्य रूप से फ़ाइल को बैश निष्पादन योग्य में बदल देता है। जब आप इसे डबल-क्लिक करते हैं, तो इसे चलना चाहिए। यह यूनिक्स-आधारित प्रणालियों में काम करता है।


0

ऐसा करने का एक अन्य तरीका एक उपनाम बनाकर हो सकता है। उदाहरण के लिए टर्मिनल में लिखें:

alias printhello='python /home/hello_world.py'

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

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