प्लस:
पहला: सौम्य, हारने योग्य मोटापा।
दूसरा: यदि संकलन काफी छोटी फ़ाइल में परिणाम करता है, तो आपको अधिक लोड समय मिलेगा। वेब के लिए अच्छा है।
तीसरा: पायथन संकलन कदम को छोड़ सकता है। इंटिअल लोड पर तेज़। सीपीयू और वेब के लिए अच्छा है।
चौथा: जितना अधिक आप टिप्पणी करेंगे, उतनी ही छोटी .pycया .pyoफाइल स्रोत .pyफ़ाइल की तुलना में होगी ।
पांचवां: केवल हाथ .pycया .pyoफ़ाइल के साथ एक अंतिम उपयोगकर्ता आपको बग के साथ पेश करने की बहुत कम संभावना है, क्योंकि वे एक अन-उलट बदलाव के कारण होते हैं जो वे आपके बारे में बताना भूल गए थे।
छठा: यदि आप एक एम्बेडेड सिस्टम को लक्ष्य कर रहे हैं, तो एम्बेड करने के लिए एक छोटे आकार की फ़ाइल प्राप्त करना एक महत्वपूर्ण प्लस का प्रतिनिधित्व कर सकता है, और आर्किटेक्चर स्थिर है इसलिए एक विस्तृत, नीचे विस्तृत, खेलने में नहीं आता है।
शीर्ष स्तर का संकलन
यह जानना उपयोगी है कि आप शीर्ष स्तर के पायथन स्रोत फ़ाइल को .pycइस तरह से फ़ाइल में संकलित कर सकते हैं :
python -m py_compile myscript.py
यह टिप्पणियों को हटाता है। यह docstringsबरकरार रहता है। यदि आप इससे भी छुटकारा पाना docstringsचाहते हैं (आप गंभीरता से सोचना चाहते हैं कि आप ऐसा क्यों कर रहे हैं) तो इसके बजाय इस तरह से संकलित करें ...
python -OO -m py_compile myscript.py
... और आपको एक .pyoफ़ाइल के बजाय एक फ़ाइल मिलेगी .pyc; कोड की आवश्यक कार्यक्षमता के संदर्भ में समान रूप से वितरण योग्य, लेकिन छीन-छांट के आकार से छोटा docstrings(और बाद के रोजगार के लिए कम आसानी से समझा जाता है अगर यह docstringsपहले स्थान पर सभ्य था )। लेकिन नीचे तीन देखें।
ध्यान दें कि अजगर .pyफ़ाइल की तारीख का उपयोग करता है , अगर यह मौजूद है, तो यह तय करने के लिए कि क्या इसे .pyफ़ाइल का विरोध करना चाहिए .pycया .pyoफ़ाइल के विपरीत --- तो अपनी .py फ़ाइल को संपादित करें, और .pycया .pyoअप्रचलित है और जो भी लाभ प्राप्त हुए हैं वह खो गए हैं। आपको इसे फिर से प्राप्त करने .pycया .pyoफिर से वापस पाने के लिए इसे फिर से बनाने की आवश्यकता है, जैसे कि वे हो सकते हैं।
कमियां:
पहली: इसमें "मैजिक कुकी" है .pycऔर .pyoफाइलें जो सिस्टम आर्किटेक्चर को इंगित करती हैं कि अजगर फाइल को संकलित किया गया था। यदि आप इनमें से किसी एक फाइल को एक अलग प्रकार के वातावरण में वितरित करते हैं, तो यह टूट जाएगा। आप वितरित हैं .pycया .pyoजुड़े बिना .pyrecompile करने के लिए या touchतो यह प्रतिस्थापित करता है .pycया .pyo, अंत उपयोगकर्ता इसे ठीक नहीं किया जा सकता है, या तो।
दूसरा: यदि ऊपर वर्णित कमांड लाइन विकल्प docstringsके उपयोग के साथ छोड़ दिया जाता -OOहै, तो कोई भी उस जानकारी को प्राप्त करने में सक्षम नहीं होगा, जो कोड का उपयोग अधिक कठिन (या असंभव) कर सकता है।
तीसरा: पायथन का -OOविकल्प -Oकमांड लाइन विकल्प के अनुसार कुछ अनुकूलन को भी लागू करता है; इसके परिणामस्वरूप ऑपरेशन में बदलाव हो सकते हैं। ज्ञात अनुकूलन हैं:
sys.flags.optimize = 1
assert बयान छोड़ दिए जाते हैं
__debug__ = झूठा
चौथा: यदि आपने जानबूझकर अपनी अजगर स्क्रिप्ट #!/usr/bin/pythonको पहली पंक्ति के आदेश पर किसी चीज के साथ निष्पादन योग्य बनाया है , तो यह अंदर .pycऔर .pyoफाइलों में छीन लिया जाता है और यह कार्यक्षमता खो जाती है।
पांचवां: कुछ हद तक स्पष्ट है, लेकिन यदि आप अपना कोड संकलित करते हैं, तो न केवल इसका उपयोग प्रभावित हो सकता है, बल्कि दूसरों के आपके काम से सीखने की क्षमता कम हो जाती है, अक्सर गंभीर रूप से।