.PYO

Plik PYO

Python Optimized Bytecode File (legacy)
Zadaj pytanie
SZYBKA ODPOWIEDŹ

Plik .pyo to przestarzały plik pamięci podręcznej zoptymalizowanego bajtkodu Python, generowany przez uruchomienie Python z flagą -O lub -OO. Format binarny jest identyczny z plikiem .pyc. Python 3.5 wyeliminował rozszerzenie .pyo w 2015 roku (PEP 488), więc jeśli widzisz go dzisiaj, pochodzi on z Python 2 lub Python 3.0-3.4. Można go uruchomić z wiersza poleceń przy użyciu pasującej wersji Python lub zdekompilować z powrotem do .py za pomocą decompyle3 lub uncompyle6.

Deweloper: Python Software Foundation (CPython) Kategoria: Pliki developerskie Otwarty standard MIME: application/x-python-code
OTWIERA SIĘ NA Windows macOS Linux Web
Powiązane: .DO · .MD · .HEX · .XSD

Na tej stronie

Zindeksowano 19k+ rozszerzeń
Ostatnia weryfikacja Jun 27, 2026

Nie wiesz, co to za plik?

Przeciągnij dowolny plik do naszego identyfikatora - odczytujemy tylko pierwsze bajty, aby nazwać format.

Zidentyfikuj plik

Co to jest format pliku PYO?

Plik .pyo to przestarzały zoptymalizowany plik bajtkodu Python produkowany przez interpreter CPython po uruchomieniu z flagą -O (optymalizacja) lub -OO. Przekazanie -O usuwa instrukcje assert ze skompilowanego bajtkodu; przekazanie -OO dodatkowo usuwa wszystkie docstringi, nieznacznie zmniejszając rozmiar pliku.

Wewnętrznie pliki .pyoidentyczne pod względem formatu bajt po bajcie z plikami .pyc: posiadają 16-bajtowy nagłówek (4-bajtowy numer magiczny specyficzny dla wersji, 4-bajtowe pole flag, 4-bajtowy znacznik czasu lub skrót źródła, 4-bajtowy rozmiar źródła), po którym następuje zserializowany (marshalled) obiekt kodu CPython. Poziom optymalizacji jest odzwierciedlony tylko w skompilowanej zawartości - nigdy w nagłówku pliku.

Rozszerzenie .pyo zostało wycofane w Python 3.5 przez PEP 488 (wrzesień 2015) i nie jest już generowane przez żadne obecne wydanie Python. Od wersji Python 3.5 wzwyż zoptymalizowany bajtkod jest przechowywany wewnątrz __pycache__ pod nazwami takimi jak module.cpython-311.opt-1.pyc (dla -O) lub .opt-2.pyc (dla -OO). Jeśli napotkasz dziś plik .pyo, pochodzi on z kodu Python 2 lub Python 3.0-3.4.

Pliki .pyo nie są przenośne między wersjami CPython - numer magiczny zmienia się z każdym wydaniem. Narzędzia takie jak uncompyle6 (Python 2-3.8) i decompyle3 (Python 3.7-3.11) mogą dekompilować pliki .pyo z powrotem do przybliżonego kodu źródłowego .py, choć dokładność zależy od wersji Python i złożoności kodu.

Bezpieczeństwo

RYZYKO: MEDIUM

Plik .pyo wykonuje się jako bajtkod Python ze wszystkimi możliwościami skryptu Python - dostępem do systemu plików, sieci, wykonywaniem podprocesów. Nigdy nie uruchamiaj pliku .pyo z niezaufanego źródła. Oprogramowanie antywirusowe często nie skanuje zawartości .pyo. Złośliwe aplikacje Python są czasem dystrybuowane wyłącznie jako bajtkod (.pyc/.pyo), aby utrudnić inżynierię wsteczną, choć dekompilatory mogą w dużej mierze odzyskać kod źródłowy.

Szczegóły formatu

w pigułce
PEŁNA NAZWAPython Optimized Bytecode File (legacy)znany również jako Python compiled optimized file, PYO file
DEWELOPERPython Software Foundation (CPython)od Early CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
TYP MIMEapplication/x-python-code
TYPBinarny bajtkod CPython (ten sam format co .pyc; generowany z flagą -O lub -OO)
STANDARDOtwarty · bezpłatny
POWIĄZANE.do.md.hex.xsd

Programy otwierające pliki PYO

Windows4 apps
Python (run the file) Open-source Uruchom „python plik.pyo” z wiersza poleceń (tylko Python 2 / 3.0-3.4). W Python 3.5+ najpierw zmień nazwę na .pyc lub użyj pasującej wersji Python.
decompyle3 (decompile to .py) Open-source pip install decompyle3, a następnie „decompyle3 plik.pyo > plik.py”. Działa na bajtkodzie Python 3.7-3.8.
uncompyle6 (decompile Python 2-3.8) Open-source pip install uncompyle6, a następnie „uncompyle6 plik.pyo > plik.py”. Obsługuje Python 2.4-3.8.
VS Code (view bytecode with extension) Open-source Zmień nazwę .pyo na .pyc, a następnie użyj rozszerzenia „Python Disassembler” lub „Bytecode Viewer”, aby sprawdzić kody operacji.
macOS1 app
Python Open-source Uruchom „python plik.pyo” z pasującą wersją Python. Większość dystrybucji Linux zawiera Python.
Linux1 app
Python Open-source Uruchom „python plik.pyo” z pasującą wersją Python. Większość dystrybucji Linux zawiera Python.
Web1 app
Decompiler.com (online decompile) Darmowy Prześlij plik .pyo; strona dekompiluje bajtkod Python (w tym .pyo) z powrotem do .py w przeglądarce.

Szczegóły techniczne

specyfikacja
Relacja formatówFormat pliku identyczny bajt po bajcie z `.pyc`; rozróżniany tylko przez rozszerzenie nazwy pliku i zawartość optymalizacji
Struktura nagłówka16-bajtowy nagłówek: 4-bajtowy numer magiczny wersji + 4-bajtowe flagi + 4-bajtowy mtime lub hash źródła + 4-bajtowy rozmiar źródła
Format treściZserializowany obiekt kodu CPython (instrukcje bajtkodu, pula stałych, nazwy, nazwy zmiennych, zagnieżdżone obiekty kodu)
Kolejność bajtówLittle-endian (format serializacji marshal CPython)
Poziom optymalizacji -OUsuwa instrukcje `assert` ze skompilowanego bajtkodu
Poziom optymalizacji -OOUsuwa instrukcje `assert` i wszystkie docstringi ze skompilowanego bajtkodu
WycofanieRozszerzenie `.pyo` wyeliminowane w Python 3.5 (PEP 488, wrzesień 2015); niegenerowane przez żadne obecne wydanie Python
Współczesny odpowiednik`module.cpython-3X.opt-1.pyc` (poziom 1) lub `.opt-2.pyc` (poziom 2) przechowywane w `__pycache__`
Przenośność wersjiNieprzenośne między wersjami CPython; numer magiczny w bajtach 0-3 zmienia się z każdym głównym wydaniem CPython
Walidacja integralnościPython 3.7+ (PEP 552): opcjonalny SipHash źródła przechowywany w flagach nagłówka; Python 2 / wczesny 3: tylko porównanie mtime
Narzędzia do dekompilacji`uncompyle6` (Python 2-3.8), `decompyle3` (Python 3.7-3.11)
Zakres dziedzictwaProdukowane tylko przez Python 2 lub Python 3.0-3.4; niespotykane w projektach celujących w Python 3.5 lub nowszy
WydanoEarly CPython (1990s); same as .pyc but with optimizations (assert removal with -O; docstring removal with -OO)
Najnowsza wersjaDEPRECATED in Python 3.5 (PEP 488, September 2015) - .pyo extension no longer generated; replaced by .cpython-3X.opt-1.pyc / .opt-2.pyc naming
Otwarty standardTak · bezpłatny (royalty-free)
Specyfikacjapeps.python.org

Konwersje PYO

Pytania i odpowiedzi społeczności

pytania użytkowników
Zadaj szybkie pytanie
Uzyskaj pomoc od osób pracujących z plikami PYO. Bądź precyzyjny - podaj system i wersję oprogramowania.
Konto nie jest wymagane · odpowiedzi zazwyczaj w ciągu doby

Brak pytań - bądź pierwszą osobą, która zapyta o pliki PYO.

Najczęściej zadawane pytania

Co to jest plik .pyo?
To przestarzały zoptymalizowany plik bajtkodu Python - skompilowana forma skryptu .py utworzona z flagą optymalizacji -O lub -OO. Ma identyczny format binarny jak .pyc; generowany przez Python 2 i Python 3.0-3.4. Python 3.5+ nie tworzy już plików .pyo.
Jak otworzyć plik .pyo?
Nie otwiera się go bezpośrednio - Python uruchamia go automatycznie. Aby odczytać jego zawartość, użyj decompyle3 lub uncompyle6, aby zdekompilować go z powrotem do kodu źródłowego .py, lub zmień nazwę na .pyc i użyj deasemblera bajtkodu.
Czy mogę usunąć pliki .pyo?
Tak - pliki .pyo to pliki pamięci podręcznej bajtkodu. Python odtworzy je w razie potrzeby. Ich usunięcie nie psuje działającej instalacji Python ani aplikacji (zakładając, że pliki źródłowe .py są obecne).
Jaka jest różnica między .pyo a .pyc?
.pyo został skompilowany z flagą -O (usunięte asserty) lub -OO (usunięte również docstringi); .pyc został skompilowany bez optymalizacji. Format binarny jest identyczny. Python 3.5+ połączył je w .opt-1.pyc / .opt-2.pyc.
Dlaczego Python 3.5+ nie tworzy plików .pyo?
PEP 488 (2015) wyeliminował .pyo, ponieważ posiadanie dwóch rozszerzeń dla tego samego formatu binarnego było mylące. Poziom optymalizacji jest teraz zakodowany w sufiksie nazwy pliku .pyc (.opt-1.pyc, .opt-2.pyc).
Jak zdekompilować .pyo, aby uzyskać źródło Python?
Użyj decompyle3 (Python 3.7-3.8) lub uncompyle6 (Python 2-3.8): „pip install decompyle3 && decompyle3 plik.pyo”. Możesz też przesłać plik na decompiler.com, aby skorzystać z opcji online. Wyniki mogą być niedoskonałe, szczególnie dla plików skompilowanych z -OO, w których brakuje docstringów.

Źródła

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

Odkrywaj dalej

w całej bazie danych

Najpopularniejsze rozszerzenia w tym tygodniu

1.AQQAQQ Instant Messenger File
2.BINCD/DVD Disc Image (BIN/CUE)
3.MDMarkdown Document
4.RPMSGRestricted Permission Message
5.CRDOWNLOADChrome Partial Download File
6.PARTPartial Download File
7.NOMEDIAAndroid No-Media Marker File
8.EXEWindows Executable (Portable Executable)
9.SWFSmall Web Format (Shockwave Flash)
10.DBSQLite Database File

Powiązane rozszerzenia

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

Darmowe narzędzia do plików

Identyfikator plików i konwerter obrazów w przeglądarce - wszystko działa na Twoim urządzeniu.

Otwórz przybornik

Przeglądaj rozszerzenia plików A-Z