.PYO

Файл PYO

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

Файл .pyo - это устаревший кэш оптимизированного байт-кода Python, создаваемый при запуске Python с флагом -O или -OO. Бинарный формат идентичен файлу .pyc. В Python 3.5 расширение .pyo было упразднено в 2015 году (PEP 488), поэтому, если вы видите его сегодня, он относится к Python 2 или Python 3.0-3.4. Вы можете запустить его из командной строки с соответствующей версией Python или декомпилировать обратно в .py с помощью decompyle3 или uncompyle6.

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

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

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

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

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

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

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

Файл .pyo - это устаревший оптимизированный байт-код Python, создаваемый интерпретатором CPython при запуске с флагом -O (оптимизация) или -OO. Передача -O удаляет инструкции assert из скомпилированного байт-кода; передача -OO дополнительно удаляет все строки документации (docstrings), немного уменьшая размер файла.

Внутренне файлы .pyo побайтово идентичны по формату файлам .pyc: 16-байтовый заголовок (4-байтовое магическое число версии, 4-байтовое поле флагов, 4-байтовая метка времени или хеш исходника, 4-байтовый размер исходника), за которым следует маршалированный объект кода CPython. Уровень оптимизации отражается только в скомпилированном содержимом - он никогда не указывается в заголовке файла.

Расширение .pyo было объявлено устаревшим в Python 3.5 согласно PEP 488 (сентябрь 2015 г.) и больше не генерируется ни одним современным выпуском Python. Начиная с Python 3.5, оптимизированный байт-код хранится внутри __pycache__ с именами вида module.cpython-311.opt-1.pyc (для -O) или .opt-2.pyc (для -OO). Если вы столкнулись с файлом .pyo сегодня, он происходит из кода Python 2 или Python 3.0-3.4.

Файлы .pyo не переносимы между версиями CPython - магическое число меняется с каждым выпуском. Такие инструменты, как uncompyle6 (Python 2-3.8) и decompyle3 (Python 3.7-3.11), могут декомпилировать файлы .pyo обратно в примерный исходный код .py, хотя точность варьируется в зависимости от версии Python и сложности кода.

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

РИСК: MEDIUM

Файл .pyo исполняется как байт-код Python со всеми возможностями скрипта Python - доступ к файловой системе, сеть, выполнение подпроцессов. Никогда не запускайте .pyo из ненадежных источников. Антивирусное ПО часто не сканирует содержимое .pyo. Вредоносные приложения Python иногда распространяются только в виде байт-кода (.pyc/.pyo), чтобы затруднить обратную разработку, хотя декомпиляторы могут в значительной степени восстановить исходный код.

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

в двух словах
ПОЛНОЕ НАЗВАНИЕPython Optimized Bytecode File (legacy)также известен как Python compiled optimized file, PYO file
РАЗРАБОТЧИКPython Software Foundation (CPython)с Early CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
MIME-ТИПapplication/x-python-code
ТИПБинарный байт-код CPython (тот же формат, что и .pyc; генерируется с флагом -O или -OO)
СТАНДАРТОткрытый · без роялти
СВЯЗАННЫЕ.do.md.hex.xsd

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

Windows4 apps
Python (run the file) Открытый код Запустите «python file.pyo» из командной строки (только для Python 2 / 3.0-3.4). В Python 3.5+ сначала переименуйте в .pyc или используйте подходящую версию Python.
decompyle3 (decompile to .py) Открытый код Выполните «pip install decompyle3», затем «decompyle3 file.pyo > file.py». Работает с байт-кодом Python 3.7-3.8.
uncompyle6 (decompile Python 2-3.8) Открытый код Выполните «pip install uncompyle6», затем «uncompyle6 file.pyo > file.py». Поддерживает Python 2.4-3.8.
VS Code (view bytecode with extension) Открытый код Переименуйте .pyo в .pyc, затем используйте расширение «Python Disassembler» или «Bytecode Viewer» для проверки опкодов.
macOS1 app
Python Открытый код Запустите «python file.pyo» с соответствующей версией Python. Большинство дистрибутивов Linux включают Python.
Linux1 app
Python Открытый код Запустите «python file.pyo» с соответствующей версией Python. Большинство дистрибутивов Linux включают Python.
Web1 app
Decompiler.com (online decompile) Бесплатно Загрузите файл .pyo; сайт декомпилирует байт-код Python (включая .pyo) обратно в .py прямо в браузере.

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

глубокая спецификация
Связь форматовПобайтово идентичный формат файла с `.pyc`; отличается только расширением имени файла и содержимым оптимизации
Структура заголовка16-байтовый заголовок: 4 байта magic-числа версии + 4 байта флагов + 4 байта mtime или хеша исходника + 4 байта размера исходника
Формат телаМаршалированный объект кода CPython (инструкции байт-кода, пул констант, имена, имена переменных, вложенные объекты кода)
Порядок байтовLittle-endian (формат сериализации marshal в CPython)
Уровень оптимизации -OУдаляет инструкции `assert` из скомпилированного байт-кода
Уровень оптимизации -OOУдаляет инструкции `assert` и все строки документации (docstrings) из скомпилированного байт-кода
УстареваниеРасширение `.pyo` упразднено в Python 3.5 (PEP 488, сентябрь 2015 г.); не генерируется современными версиями Python
Современный эквивалент`module.cpython-3X.opt-1.pyc` (уровень 1) или `.opt-2.pyc` (уровень 2), хранящиеся в `__pycache__`
Переносимость версийНе переносим между версиями CPython; магическое число в байтах 0-3 меняется с каждым мажорным выпуском CPython
Проверка целостностиPython 3.7+ (PEP 552): необязательный SipHash исходника, хранящийся во флагах заголовка; Python 2 / ранний 3: только сравнение mtime
Инструменты декомпиляции`uncompyle6` (Python 2-3.8), `decompyle3` (Python 3.7-3.11)
Сфера применения (legacy)Создавался только в Python 2 или Python 3.0-3.4; не встречается в проектах, ориентированных на Python 3.5 или новее
ВыпущенEarly CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
Последняя версияDEPRECATED in Python 3.5 (PEP 488, September 2015) - .pyo extension no longer generated; replaced by .cpython-3X.opt-1.pyc / .opt-2.pyc naming
Открыть стандартноеДа · без роялти
Спецификацияpeps.python.org

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

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

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

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

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

Что такое файл .pyo?
Устаревший файл оптимизированного байт-кода Python - скомпилированная форма скрипта .py, созданная с флагом оптимизации -O или -OO. Бинарный формат идентичен .pyc; генерировался в Python 2 и Python 3.0-3.4. Python 3.5+ больше не создает файлы .pyo.
Как открыть файл .pyo?
Вы не открываете его напрямую - Python запускает его автоматически. Чтобы прочитать его содержимое, используйте decompyle3 или uncompyle6 для декомпиляции обратно в исходный код .py или переименуйте в .pyc и используйте дисассемблер байт-кода.
Можно ли удалить файлы .pyo?
Да - файлы .pyo являются кэшем байт-кода. Python воссоздаст их при необходимости. Их удаление не нарушает работу установленного Python или приложения (при условии наличия исходных файлов .py).
В чем разница между .pyo и .pyc?
.pyo был скомпилирован с флагом -O (удалены assert) или -OO (также удалены docstrings); .pyc был скомпилирован без оптимизации. Бинарный формат идентичен. В Python 3.5+ они объединены в .opt-1.pyc / .opt-2.pyc.
Почему Python 3.5+ не создает файлы .pyo?
PEP 488 (2015) устранил .pyo, так как наличие двух расширений для одного и того же бинарного формата вносило путаницу. Уровень оптимизации теперь кодируется в суффиксе имени файла .pyc (.opt-1.pyc, .opt-2.pyc).
Как декомпилировать .pyo, чтобы получить исходный код Python?
Используйте decompyle3 (Python 3.7-3.8) или uncompyle6 (Python 2-3.8): «pip install decompyle3 && decompyle3 file.pyo». Или воспользуйтесь онлайн-сервисом decompiler.com. Результаты могут быть несовершенными, особенно для файлов, скомпилированных с -OO, где отсутствуют строки документации.

Ссылки

1PEP 488 - Elimination of PYO filespeps.python.org
2Python Docs - compileall moduledocs.python.org

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

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

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

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

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

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

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

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

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

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