मैंने अजगर सीखना शुरू कर दिया है और मैं उबंटू में एक नया उपयोगकर्ता भी हूं। मुझे .py
फाइलों को संकलित करने के तरीकों को जानना होगा । मैंने कमांड के साथ कोशिश की है
python "hello.py"
अजगर को संकलित करने के अन्य तरीके क्या हैं?
मैंने अजगर सीखना शुरू कर दिया है और मैं उबंटू में एक नया उपयोगकर्ता भी हूं। मुझे .py
फाइलों को संकलित करने के तरीकों को जानना होगा । मैंने कमांड के साथ कोशिश की है
python "hello.py"
अजगर को संकलित करने के अन्य तरीके क्या हैं?
जवाबों:
यह भी ध्यान रखें कि इसे चलाने के लिए आपको फ़ाइल संकलित करने की आवश्यकता नहीं .py
है। पायथन एक व्याख्या की गई भाषा है, और आप सीधे स्क्रिप्ट का उपयोग कर सकते हैं:
python hello.py
या स्क्रिप्ट #!/usr/bin/env python
के शीर्ष पर जोड़कर अपनी स्क्रिप्ट को निष्पादन योग्य बनाएं , फ़ाइल को निष्पादन योग्य बनाएं chmod +x hello.py
और फिर चलें:
./hello.py
यह तथ्य कि पायथन आंतरिक रूप से प्रदर्शन के कारणों के लिए आपकी .py
स्क्रिप्ट को बायटेकोड .pyc
फाइलों में संकलित करता है, एक कार्यान्वयन विवरण है, और जब तक आपके पास ऐसा करने का एक मजबूत कारण नहीं है, तब तक अजगर खुद तय करें कि कब और क्या संकलन करना है।
chmod +x
), तो दुभाषिया स्क्रिप्ट को कैसे पढ़ रहा है?
#!/path/to/interpreter
, तो कर्नेल वास्तव में जो कुछ भी घोषित किया जाता है, वह स्क्रिप्ट पथ को एक तर्क के रूप में पारित करता है। मेरे उदाहरण में, जब आप चलाते हैं ./hello.py
कि वास्तव में क्या निष्पादित होता है /usr/bin/env python ./hello.py
। En.wikipedia.org/wiki/Shebang_(Unix)
chmod +x
अनुदान निष्पादित करता है, और मौजूदा अनुमतियों को नहीं छूता है, इसलिए संभवतः अब निष्पादन योग्य होने के अलावा यह पठनीय है।
पायथन में इस लिंक का संकलन देखें
पृष्ठ के मध्य में, यह py_compile मॉड्यूल के बारे में बात करता है जिसे आयात किया जा सकता है। सिंटैक्स निम्नानुसार है:
import py_compile
py_compile.compile("file.py")
संकलन की यह विधि मॉड्यूल को निष्पादित नहीं करेगी, जैसे कि अजगर फ़ाइलहोम चलाना।
एक ऐसी विधि भी है जो संपूर्ण निर्देशिका ट्री को संकलित करती है लेकिन मैं आपको लिंक को देखने देता हूं कि यह कैसे निष्पादित होता है।
उम्मीद है की यह मदद करेगा।
आप भी आजमा सकते हैं compileall
:
python -m compileall ./
आप विभिन्न तरीकों का उपयोग करके पायथन स्क्रिप्ट को एक बाइनरी कोड के लिए संकलित कर सकते हैं, लेकिन मुझे पता चला है कि नुत्का का उपयोग करना अधिक कुशल है।
नुत्का एक पायथन-टू-सी ++ कंपाइलर है जो अजगर के लगभग सभी संस्करणों का समर्थन करता है।
कमांड सिंटैक्स जितना आसान है
nuitka hello.py
अधिक जानकारी के लिए गोटो http://nuitka.net/doc/user-manual.html
-O
ध्वज को भी जोड़ सकते हैं , जैसेpython -O -m py_compile …
, "मूल अनुकूलन चालू करें"। यह मुख्य रूप सेassert
स्टेटमेंट्स औरif __debug__
कोड को स्ट्रिप्स करता है , इसलिए अधिकांश कोड के लिए इसका कोई प्रभाव नहीं होता है। देखेंman python
और "क्या अजगर अनुकूलन करता है ... है?" जानकारी के लिए।