सभी पायथन प्रोग्राम स्वचालित रूप से आपके स्रोत कोड को संकलित करने के लिए संकलित करता है, जिसे बाइट कोड भी कहा जाता है, इसे निष्पादित करने से पहले।
जब भी हम पहली बार एक मॉड्यूल आयात करते हैं या जब आपकी स्रोत फ़ाइल एक नई फ़ाइल होती है या हमारे पास एक अद्यतन फ़ाइल होती है तो हाल ही में संकलित फ़ाइल, फ़ाइल को उसी निर्देशिका में .py फ़ाइल के रूप में संकलित करने पर एक .pyc फ़ाइल बनाई जाएगी। (पायथन 3- से आप देख सकते हैं कि .pyc फ़ाइल __pycache__ नामक उपनिर्देशिका में है, इसके बजाय आपकी .py फ़ाइल के समान निर्देशिका में है)। यह एक समय बचाने वाला तंत्र है क्योंकि यह अगली बार अपना प्रोग्राम चलाने पर पायथन को संकलन चरण को छोड़ने से रोकता है।
यदि आप एक आयात (एक अन्य फ़ाइल) के साथ एक स्क्रिप्ट चला रहे हैं, तो कोई .pyc फ़ाइल नहीं बनाई जाएगी। उदाहरण के लिए, यदि आपके पास एक स्क्रिप्ट (file1.py) है जो दूसरी फ़ाइल (file2.py) आयात करती है।
PYC फ़ाइल बनाने का सबसे आसान तरीका इसे आयात करना है। मान लें कि आपके पास एक मॉड्यूल नाम MainP.py है। बस करो -
>>> import MainP >>>
हालांकि, अगर आप एक मॉड्यूल के लिए एक .pyc फ़ाइल बनाना चाहते हैं जो आयात नहीं किया गया है, तो हमें py_compile नामक मॉड्यूल का सेट करना होगा और उस कार्य को करने के लिए सभी मॉड्यूल संकलित करना होगा।
py_compile मॉड्यूल किसी भी मॉड्यूल को मैन्युअल रूप से संकलित कर सकता है। हम py_compile का उपयोग करके अंतःक्रियात्मक रूप से py_compile मॉड्यूल भी बना सकते हैं। संकलन समारोह।
>>> import py_compile >>> py_compile.compile('test.py') '__pycache__\\test.cpython-36.pyc' >>>
एक बार जब हम उपरोक्त कथन को पायथन शेल में चलाते हैं, तो हम देख सकते हैं कि __pycache__ फ़ोल्डर में एक .pyc फ़ाइल बनाई गई है (पायथन 3) अन्यथा आपकी test.py फ़ाइल के समान स्थान पर बनाई जाएगी।
यदि आप एक समय में कई फाइलों को संकलित करना चाहते हैं, तो आप इस तरह py_compile.main() फ़ंक्शन का उपयोग कर सकते हैं -
>>> #Compiles several files at a time >>> py_compile.main(['test1.py', 'test2.py', 'test_sample1.py', 'test_sample2.py']) 0
हम देख सकते हैं कि चार अलग-अलग संकलित फ़ाइलें उत्पन्न होती हैं -
हालांकि, यदि आप किसी फ़ोल्डर के अंदर सभी फाइलों को संकलित करना चाहते हैं, तो आप Compileall.compile_dir() फ़ंक्शन का उपयोग कर सकते हैं।
>>> # Compile all the .py file from a particular folder. >>> import compileall >>> compileall.compile_dir('gmplot') Listing 'gmplot'... Listing 'gmplot\\.git'... Listing 'gmplot\\.git\\hooks'... Listing 'gmplot\\.git\\info'... Listing 'gmplot\\.git\\logs'... Listing 'gmplot\\.git\\logs\\refs'... Listing 'gmplot\\.git\\logs\\refs\\heads'... Listing 'gmplot\\.git\\logs\\refs\\remotes'... Listing 'gmplot\\.git\\logs\\refs\\remotes\\origin'... Listing 'gmplot\\.git\\objects'... Listing 'gmplot\\.git\\objects\\info'... Listing 'gmplot\\.git\\objects\\pack'... Listing 'gmplot\\.git\\refs'... Listing 'gmplot\\.git\\refs\\heads'... Listing 'gmplot\\.git\\refs\\remotes'... Listing 'gmplot\\.git\\refs\\remotes\\origin'... Listing 'gmplot\\.git\\refs\\tags'... Compiling 'gmplot\\__init__.py'... Compiling 'gmplot\\color_dicts.py'... Listing 'gmplot\\gmplot'... Listing 'gmplot\\gmplot\\markers'... Compiling 'gmplot\\gmplot.py'... Compiling 'gmplot\\google_maps_templates.py'... Compiling 'gmplot\\setup.py'... Listing 'gmplot\\tests'... True
अब हम देखते हैं कि .pyc फ़ाइल 'folder_name\__pycache__' स्थान के अंदर बनाई गई है।
यदि आप किसी निर्देशिका या निर्देशिका के अंदर सभी फाइलों को संकलित करना चाहते हैं, तो आप इसे कंपाइल फ़ंक्शन के साथ कर सकते हैं।
C:\Users\rajesh>python -m compileall Skipping current directory Listing 'C:\\Python\\Python361\\python36.zip'... Can't list 'C:\\Python\\Python361\\python36.zip' Listing 'C:\\Python\\Python361\\DLLs'... Listing 'C:\\Python\\Python361\\lib'... Listing 'C:\\Python\\Python361'... Compiling 'C:\\Python\\Python361\\BeautifulSoup_script1.py'... Compiling 'C:\\Python\\Python361\\EDA_python1.py'... Compiling 'C:\\Python\\Python361\\MainP.py'... Compiling 'C:\\Python\\Python361\\NegativeAgeException.py'... Compiling 'C:\\Python\\Python361\\NegativeNumberException.py'... Compiling 'C:\\Python\\Python361\\OtherP.py'... Compiling 'C:\\Python\\Python361\\__init__ Constructor.py'... Compiling 'C:\\Python\\Python361\\attribute_access.py'... ….. … Compiling 'C:\\Python\\Python361\\variable_arguments_list.py'... Compiling 'C:\\Python\\Python361\\variable_arguments_list1.py'... Compiling 'C:\\Python\\Python361\\winquality1.py'...
और हम देख सकते हैं कि .pyc फ़ाइल एक __pycache__ निर्देशिका के अंदर सभी फ़ाइलों के लिए बनाई गई है।