compileall.md
1> **Источник:** https://python-all.ru/3.0/library/compileall.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `compileall` – Побайтовая компиляция библиотек Python89Этот модуль предоставляет несколько вспомогательных функций для установки библиотек Python. Эти функции компилируют исходные файлы Python в дереве каталогов, позволяя пользователям, у которых нет прав на запись в библиотеки, использовать кэшированные байт-кодовые файлы.1011Этот модуль также можно использовать как скрипт (с помощью флага [*-m*](https://python-all.ru/3.0/using/cmdline.html#cmdoption-m) Python) для компиляции исходных файлов Python. Каталоги для рекурсивного обхода (указание *-l* отключает рекурсию) перечисляются в командной строке. Если аргументы не заданы, вызов эквивалентен `-l sys.path`. Вывод списков скомпилированных файлов можно отключить с помощью флага *-q*. Кроме того, параметр [*-x*](https://python-all.ru/3.0/using/cmdline.html#cmdoption-x) принимает в качестве аргумента регулярное выражение. Все файлы, соответствующие выражению, будут пропущены.1213#### `[compileall.compile_dir]compileall.compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])`1415Рекурсивно обходит дерево каталогов с именем *dir*, компилируя все файлы `.py` по пути. Параметр *maxlevels* используется для ограничения глубины рекурсии; по умолчанию он равен `10`. Если указан *ddir*, он используется как базовый путь, из которого будут генерироваться имена файлов, используемые в сообщениях об ошибках. Если *force* истинно, модули перекомпилируются, даже если отметки времени актуальны.1617Если задан *rx*, он определяет регулярное выражение для имен файлов, которые следует исключить из поиска; это выражение ищется в полном пути.1819Если *quiet* истинно, в обычном режиме ничего не выводится в стандартный вывод.2021#### `[compileall.compile_path]compileall.compile_path([skip_curdir[, maxlevels[, force]]])`2223Компилирует все файлы2425`.py`2627, найденные вдоль2829`sys.path`3031. Если3233*skip\_curdir*3435истинно (по умолчанию), текущий каталог не включается в поиск. Параметры3637*maxlevels*3839и4041*force*4243по умолчанию равны4445`0`4647и передаются функции4849[`compile_dir()`](https://python-all.ru/3.0/library/compileall.html#compileall.compile_dir)5051.5253Чтобы принудительно перекомпилировать все файлы `.py` в подкаталоге `Lib/` и всех его подкаталогах:5455```python56import compileall5758compileall.compile_dir('Lib/', force=True)5960# Выполнить ту же компиляцию, исключая файлы в каталогах .svn.61import re62compileall.compile_dir('Lib/', rx=re.compile('/[.]svn'), force=True)63```6465> **См. также**66>67> **Модуль [`py_compile`](https://python-all.ru/3.0/library/py_compile.html#module-py_compile)**68>69> Байт-компилирует один исходный файл.70