Документация Python неофициальный перевод

32.10. py_compile – Компиляция исходных файлов Pythonpy_compile – Compile Python source files

Исходный код: Lib/py_compile.py


Модуль py_compile содержит функцию для создания файла байт-кода из исходного файла и ещё одну функцию, которая вызывается при запуске модуля как скрипта.

Хотя эта функция требуется нечасто, она может быть полезна при установке модулей для общего использования, особенно если некоторые пользователи могут не иметь прав на запись файлов кэша байт-кода в каталог, содержащий исходный код.

exception py_compile.PyCompileError

Исключение, возникающее при попытке компиляции файла.

py_compile.compile(file[, cfile[, dfile[, doraise]]])

Компилирует исходный файл в байт-код и записывает файл кэша байт-кода. Исходный код загружается из файла с именем file. Байт-код записывается в cfile, который по умолчанию равен file + 'c' ('o', если оптимизация включена в текущем интерпретаторе). Если указан dfile, он используется как имя исходного файла в сообщениях об ошибках вместо file. Если doraise равен true, при возникновении ошибки во время компиляции file вызывается PyCompileError. Если doraise равен false (по умолчанию), строка с ошибкой записывается в sys.stderr, но исключение не вызывается.

py_compile.main([args])

Компилирует несколько исходных файлов. Файлы, перечисленные в args (или в командной строке, если args не указан), компилируются, и полученный байт-код кэшируется обычным образом. Эта функция не обходит структуру каталогов в поисках исходных файлов; она компилирует только явно указанные файлы. Если единственным параметром в args является '-', список файлов берётся из стандартного ввода.

Изменено в версии 2.7: Добавлена поддержка '-'.

Когда этот модуль запускается как скрипт, main() используется для компиляции всех файлов, указанных в командной строке. Код возврата ненулевой, если один из файлов не удалось скомпилировать.

Изменено в версии 2.6: Добавлен ненулевой код возврата при запуске модуля в качестве скрипта.

См. также

Модуль compileall

Утилиты для компиляции всех исходных файлов Python в дереве каталогов.