Python Компиляция — получение исполняемого файла отлаженной программы.
Python Компиляция двойственна: для ускорения выполнения каждая программа при первом исполнении компилируется в байт-код; существует полноценный компилятор, выдающий EXE-файл программы.
==
Программа на языке Python представляет собой обычный текстовый файл с расширением ру (консольная программа) или pyw (программа с графическим интерфейсом). Все инструкции из этого файла выполняются интерпретатором построчно. Для ускорения работы при первом импорте модуля создается промежуточный байт-код, который сохраняется в одноименном файле с расширением рус. При последующих запусках, если модуль не был изменен, исполняется именно байт-код. Для выполнения низкоуровневых операций и задач, требующих высокой скорости работы, можно написать модуль на языке С или С++, скомпилировать его, а затем подключить к основной программе.
Когда интерпретатор Python начинает выполнение программы, хранящейся в файле, он сначала компилирует ее в особое внутреннее представление, — это делается с целью увеличить производительность кода. Файл с откомпилированным кодом хранится в папке _pycache , вложенной в папку, где хранится сам файл программы, а его имя имеет еле-дующий вид: <имя файла с исходным, неоткомпилированным кодом>.сруthоn-<первые две цифры номера версии Python> .рус Так, при запуске на исполнение файла test4.py будет создан файл откомпилированного кода с именем test4.cpython-34.pyc. При последующем запуске того же файла на выполнение будет исполняться именно откомпилированный код. Если же мы исправим исходный код, программа его автоматически перекомпилирует. При необходимости мы можем удалить файлы с откомпилированным кодом или даже саму папку _pycache_ — впоследствии интерпретатор сформирует их заново.
Как говорилось ещё в главе 1, перед собственно выполнением каждый модуль Python компилируется, преобразуясь в особое внутреннее представление (байт-код), — это делается для ускорения выполнения кода. Файлы с откомпилированным кодом хранится в папке _pycache_, автоматически создающейся в папке, где находится сам файл с исходным, неоткомпилированным кодом модуля, и имеют имена вида <имя файла с исходным кодом>.сруthоn-<первые две цифры номера версии Python>.pyc. Так, при запуске на исполнение нашего файла tests.py откомпилированный код будет сохранен в файле tests.cpython34.pyc.
Следует заметить, что для импортирования модуля достаточно иметь только файл с откомпилированным кодом, файл с исходным кодом в этом случае не нужен. Для примера переименуйте файл tests.py (например, в tests1 .ру), скопируйте файл tests.cpython-34.pyc из папки _pycache_ в папку с основной программой и переименуйте его в tests.pyc, а затем запустите основную программу. Программа будет нормально выполняться. Таким образом, чтобы скрыть исходный код модулей, можно поставлять программу клиентам только с файлами, имеющими расширение рус.
Для языка Python существует и полноценный компилятор, который порождает обычные исполняемые ЕХЕ-файлы, не требующие для работы обязательной установки интерпретатора. Он реализован в виде отдельной библиотеки, носит название cx_Freeze и может быть найден по адресу http://cx-freeze.sourceforge.net/. Там же находится и документация по этой проrрамме.
==
Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В хороших комментариях сохраняю ссылку на сайт автора!
И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Продолжение тут…