py_compile.md
1> **Источник:** https://python-all.ru/3.1/library/py_compile.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 30.10. `py_compile` – Компиляция исходных файлов Python89Модуль `py_compile` предоставляет функцию для создания файла байт-кода из исходного файла, а также другую функцию, используемую при вызове исходного файла модуля в качестве сценария.1011Хотя эта функция требуется нечасто, она может быть полезна при установке модулей для общего использования, особенно если некоторые пользователи могут не иметь прав на запись файлов кэша байт-кода в каталог, содержащий исходный код.1213#### `exception py_compile.PyCompileError`1415Исключение, возникающее при попытке компиляции файла.1617#### `py_compile.compile(file[, cfile[, dfile[, doraise]]])`1819Компилирует исходный файл в байт-код и записывает файл кэша байт-кода. Исходный код загружается из файла с именем2021*file*2223. Байт-код записывается в2425*cfile*2627, который по умолчанию равен2829*file*3031`+`3233`'c'`3435(3637`'o'`3839, если в текущем интерпретаторе включена оптимизация). Если указан4041*dfile*4243, он используется как имя исходного файла в сообщениях об ошибках вместо4445*file*4647. Если4849*doraise*5051равно true, при возникновении ошибки во время компиляции5253*file*5455возбуждается5657[`PyCompileError`](https://python-all.ru/3.1/library/py_compile.html#py_compile.PyCompileError)5859. Если6061*doraise*6263равно false (по умолчанию), строка с ошибкой записывается в6465`sys.stderr`6667, но исключение не возбуждается.6869#### `py_compile.main([args])`7071Компилирует несколько исходных файлов. Файлы, указанные в7273*args*7475(или в командной строке, если7677*args*7879не указан), компилируются, и полученный байт-код кэшируется обычным образом. Эта функция не ищет исходные файлы по структуре каталогов; она компилирует только явно указанные файлы.8081При запуске этого модуля как скрипта, функция [`main()`](https://python-all.ru/3.1/library/py_compile.html#py_compile.main) используется для компиляции всех файлов, перечисленных в командной строке. Код возврата будет ненулевым, если один из файлов не удалось скомпилировать.8283> **См. также**84>85> **Модуль [`compileall`](https://python-all.ru/3.1/library/compileall.html#module-compileall)**86>87> Утилиты для компиляции всех исходных файлов Python в дереве каталогов.88