पायथन .py फ़ाइलों को संकलित करता है और इसे .pyc फ़ाइलों के रूप में सहेजता है ताकि यह बाद के इनवोकेशन में उन्हें संदर्भित कर सके। .Pyc में पायथन सोर्स फाइल्स के संकलित बाइटेकोड होते हैं, जो कि पायथन इंटरप्रेटर स्रोत को संकलित करता है। इस कोड को तब पायथन की वर्चुअल मशीन द्वारा निष्पादित किया जाता है। उन्हें (.pyc) हटाने में कोई बुराई नहीं है, लेकिन यदि आप बहुत सारी प्रोसेसिंग कर रहे हैं तो वे संकलन समय बचाएंगे।
पायथन एक व्याख्या की गई भाषा है, जैसा कि एक संकलित के विपरीत है, हालांकि बाइटेकोड संकलक की उपस्थिति के कारण भेद धुंधला हो सकता है। कंपाइलिंग का मतलब आमतौर पर मशीन कोड में परिवर्तित होता है जो सबसे तेज चलता है। लेकिन व्याख्याकार मानव-पठनीय पाठ लेते हैं और इसे निष्पादित करते हैं। वे एक मध्यवर्ती चरण के साथ ऐसा कर सकते हैं।
उदाहरण के लिए, जब आप myprog.py स्रोत फ़ाइल चलाते हैं, तो अजगर इंटरप्रेटर पहले देखता है कि क्या कोई myprog.pyc
मौजूद है (जो बाइट-कोड संकलित संस्करण है myprog.py
), और यदि यह हाल ही में या उससे अधिक हाल ही में है myprog.py
। यदि हां, तो दुभाषिया इसे चलाता है। यदि यह मौजूद नहीं है, या इससे myprog.py
अधिक हाल ही में है (मतलब आपने स्रोत फ़ाइल बदल दी है), दुभाषिया पहले संकलन करता myprog.py
है myprog.pyc
।
उपरोक्त उदाहरण के लिए एक अपवाद है। यदि आप #! /usr/bin/env python
पहली पंक्ति में रखते हैं myprog.py
, तो इसे क्रियान्वित करें, और फिर myprog.py
स्वयं द्वारा चलाएं ।