.PYC

Файл PYC

Compiled Python Bytecode File
Задать вопрос
БЫСТРЫЙ ОТВЕТ

Файл .pyc - это скомпилированный байт-код Python, который CPython кэширует автоматически для ускорения запуска. Обычно вам не нужно открывать или редактировать его. Чтобы запустить такой файл, используйте соответствующую версию Python. Чтобы восстановить исходный код из .pyc, используйте декомпилятор, такой как decompyle3 или pycdc - результаты являются приблизительными и могут не сработать на новых версиях Python.

Разработчик: Python Software Foundation (CPython) Категория: Файлы разработчика Открыть стандартное MIME: application/x-python-code
ОТКРЫВАЕТСЯ НА Windows macOS Linux
Связанные: .DO · .MD · .HEX · .XSD

На этой странице

Проиндексировано расширений: 19k+
Последняя проверка: Jun 30, 2026

Не знаете, что это за файл?

Перетащите любой файл в наш идентификатор - мы прочитаем первые байты, чтобы определить формат.

Идентифицировать файл

Что такое формат файла PYC?

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

Файлы .pyc сопровождаются соответствующими исходными файлами .py. Python компилирует файл .py и сохраняет результат в файле .pyc, который затем можно использовать для прямого запуска программы. Начиная с Python 3.2, эти файлы кэша помещаются в подкаталог __pycache__ рядом с исходным кодом, а версия интерпретатора встраивается в имя файла (например, script.cpython-312.pyc).

Каждый файл .pyc начинается с 16-байтового заголовка. Первые два байта - это специфический для версии «магический номер» (magic number), который меняется с каждым выпуском CPython, за которым следуют 0x0D 0x0A (CR LF) в байтах 2-3. Остальные байты заголовка содержат либо метку времени и размер исходного файла (по умолчанию), либо хеш исходного файла для детерминированных, воспроизводимых сборок - схема, представленная в PEP 552 в Python 3.7. После заголовка файл содержит маршалированный объект кода, который можно просмотреть с помощью встроенного модуля Python dis.

Байт-код .pyc привязан к конкретной версии CPython - файл, скомпилированный в Python 3.11, не загрузится в Python 3.12. Старый формат оптимизированного байт-кода .pyo был удален в Python 3.5; теперь оптимизированные сборки создают файлы .opt-1.pyc или .opt-2.pyc. Для декомпиляции .pyc обратно в читаемый исходный код обычно используются такие инструменты, как uncompyle6, decompyle3 и pycdc (Decompyle++), хотя совместимость зависит от версии Python. В Windows скомпилированные модули расширения используют родственный формат .pyd.

Безопасность и защита

РИСК: MEDIUM

Файл .pyc - это байт-код, который интерпретатор Python ВЫПОЛНЯЕТ, поэтому вредоносный .pyc может запускать произвольный код так же, как и скрипт - никогда не запускайте .pyc из ненадежных источников. Это также распространенный метод сокрытия вредоносного ПО (поставка только скомпилированного байт-кода). И наоборот, распространение собственного кода в виде .pyc дает очень слабую защиту: его можно декомпилировать и, как минимум, дизассемблировать с помощью встроенного модуля «dis», так что это НЕ настоящий способ сохранить исходный код в секрете. Удаление файлов __pycache__ / .pyc безопасно - Python автоматически регенерирует их из исходников .py.

Детали формата

в двух словах
ПОЛНОЕ НАЗВАНИЕCompiled Python Bytecode File
РАЗРАБОТЧИКPython Software Foundation (CPython)с Early CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
MIME-ТИПapplication/x-python-code
ТИПБинарный байт-код CPython (маршалированный объект кода с заголовком версии)
СТАНДАРТОткрытый · без роялти
СВЯЗАННЫЕ.do.md.hex.xsd

Программы, открывающие файлы PYC

Windows3 apps
Python (run it) Открытый код Запустите его с СООТВЕТСТВУЮЩЕЙ версией Python: «python module.pyc». Интерпретатор выполняет байт-код напрямую, но версия должна совпадать с той, на которой он был скомпилирован.
decompyle3 / uncompyle6 (decompile) Открытый код Восстановление исходного кода: «pip install decompyle3», затем «decompyle3 file.pyc > file.py». Лучше всего работает для Python до версии ~3.8; комментарии и форматирование теряются.
pycdc (Decompyle++) Открытый код Для новых версий Python (3.9+), где uncompyle6 не справляется: соберите pycdc и запустите «pycdc file.pyc». Работает по принципу «как есть»; точность на последних версиях ограничена.
macOS2 apps
Python (run it) Открытый код Запустите его с СООТВЕТСТВУЮЩЕЙ версией Python: «python module.pyc». Интерпретатор выполняет байт-код напрямую, но версия должна совпадать с той, на которой он был скомпилирован.
uncompyle6 / decompyle3 (decompile) Открытый код Установите через pip и декомпилируйте в .py; те же нюансы с версиями, что и в Windows.
Linux2 apps
Python (run it) Открытый код Запустите его с СООТВЕТСТВУЮЩЕЙ версией Python: «python module.pyc». Интерпретатор выполняет байт-код напрямую, но версия должна совпадать с той, на которой он был скомпилирован.
decompyle3 / pycdc (decompile) Открытый код Выполните «pip install decompyle3» (или соберите pycdc для 3.9+), затем декомпилируйте .pyc обратно в .py.

Технические подробности

глубокая спецификация
РазработчикPython Software Foundation (CPython)
MIME-типapplication/x-python-code
Структура файлаБинарная - 16-байтовый заголовок с версией, за которым следует маршалированный объект кода Python
Магическое числоБайты 0-1: 2-байтовое значение, зависящее от версии (различается для каждого релиза CPython); байты 2-3: всегда 0x0D 0x0A (CR LF)
Макет заголовка32-битное магическое число, 32-битные флаги битовых полей, затем либо 32-битное mtime + 32-битный размер исходника (режим метки времени), либо 32-битный хеш исходника (режим хеша PEP 552)
Каталог кэшаХранится в __pycache__/ начиная с Python 3.2; имя файла кодирует версию интерпретатора, например script.cpython-312.pyc
Совместимость версийКаждая версия CPython записывает уникальный магический номер; .pyc от Python 3.11 не загрузится в 3.12 и наоборот
Портативность платформыПлатформонезависим в рамках одной и той же версии CPython - один и тот же .pyc работает на Windows, macOS и Linux с подходящим интерпретатором
Оптимизированные вариантыКоманды «python -O» и «python -OO» создают .opt-1.pyc и .opt-2.pyc (удаляют утверждения assert и строки документации); расширение .pyo было упразднено в Python 3.5
Управление автогенерациейCPython записывает файлы .pyc автоматически при импорте; подавляется флагом -B или переменной окружения PYTHONDONTWRITEBYTECODE=1
Дизассемблирование / декомпиляцияВстроенный модуль Python «dis» дизассемблирует байт-код; сторонние инструменты uncompyle6, decompyle3 и pycdc (Decompyle++) пытаются восстановить исходный код
Внутренний формат сериализацииОбъекты кода сериализуются с помощью модуля marshal - компактного бинарного формата, отличного от pickle и не являющегося частью стабильного публичного API
Сборки на основе хешаВ PEP 552 (Python 3.7+) представлены файлы .pyc на основе хеша: заголовок хранит хеш исходного файла вместо mtime для воспроизводимых сборок
ВыпущенEarly CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
Открыть стандартноеДа · без роялти
Спецификацияdocs.python.org

Конвертации PYC

Вопросы и ответы сообщества

спрошено пользователями
Задать быстрый вопрос
Получите помощь от людей, работающих с файлами PYC. Будьте конкретны - укажите вашу систему и версию ПО.
Аккаунт не нужен · ответы обычно в течение дня

Вопросов пока нет - станьте первым, кто спросит о файлах PYC.

Часто задаваемые вопросы

Что такое файл .pyc и можно ли его удалить?
Это скомпилированный байт-код Python, который Python кэширует для более быстрого запуска. Вы можете безопасно удалять файлы .pyc и папки __pycache__ - Python воссоздаст их из исходного кода .py при следующем запуске.
Как преобразовать .pyc обратно в исходный код .py?
Путем декомпиляции. Используйте decompyle3 или uncompyle6 для Python до версии 3.8 («decompyle3 file.pyc > file.py») или pycdc для Python 3.9+. Результаты являются приблизительными - комментарии и точное форматирование теряются - и могут не сработать на самых новых версиях Python.
Почему мой файл .pyc не запускается?
Почти всегда это несоответствие версий: .pyc привязан к конкретной версии CPython, которая его создала (магический номер). Запустите его с той же версией или возьмите оригинальный .py, чтобы ваш Python перекомпилировал его.
Скрывает ли распространение .pyc вместо .py мой исходный код?
Лишь частично. .pyc можно декомпилировать обратно в читаемый Python и всегда можно дизассемблировать с помощью встроенного модуля «dis». Это защищает от случайного просмотра, но не является реальной защитой.
Что находится внутри папки __pycache__?
Кэшированные файлы .pyc с именами вида module.cpython-311.pyc - по одному на каждый импортированный модуль, помеченные версией Python. Это автоматический кэш производительности, который можно безопасно удалять.
Можно ли запустить .pyc без файла .py?
Да, если у вас есть подходящая версия Python: «python module.pyc». Файл .py нужен только для редактирования или для того, чтобы Python мог заново создать кэш.

Ссылки

1Python docs - dis (bytecode disassembler)docs.python.org
2PEP 552 - Deterministic pycspeps.python.org

Узнать больше

по всей базе данных

Популярные расширения на этой неделе

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.EXEWindows Executable (Portable Executable)
10.PRDXSoftMaker Presentations Document

Похожие расширения

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Бесплатные инструменты для файлов

Идентификатор файлов и конвертер изображений в браузере - все работает на вашем устройстве.

Открыть инструменты

Обзор расширений файлов A-Z