Varför konvertera PYC till PYO?
.pyo var Pythons optimerade bytecode, nästan identisk med .pyc men med assert-satser borttagna och valfritt rensade docstrings. Python 3.5 bakade in optimeringsnivån i .pyc-filnamnet, vilket gjorde .pyo redundant och tog bort den helt. Ingen Python-version sedan 3.5 läser eller skriver .pyo-filer, så en PYC-till-PYO-konverterare har inget legitimt syfte.
Om dessa format
En .pyc-fil är kompilerad Python-bytecode som CPython cachar automatiskt för att påskynda uppstarten. Du behöver normalt inte öppna eller röra den. För att köra en, använd matchande…
Öppna detaljer för .PYC →En .pyo-fil är en föråldrad cache för Python-optimerad bytekod som genereras genom att köra Python med flaggan -O eller -OO. Det binära formatet är identiskt med en .pyc-fil. Python 3.5 tog…
Öppna detaljer för .PYO →Kvalitet & vad man bör tänka på
- För att skapa optimerad bytecode i Python 3.5+, kör
python -O -m compileall yourscript.py; resultatet är en.pyc-fil namngiven medopt-1i mappen__pycache__. - Om du har en
.pyo-fil från ett Python 2- eller tidigt Python 3-projekt kan du byta namn på den till.pycoch köra den med matchande Python-version - tolken laddar den om dess magic number matchar. pyooch.pycvar funktionellt nästan identiska även före borttagningen, vilket är precis varför den separata filändelsen eliminerades i Python 3.5.
Vanliga frågor
Är .pyo samma sak som .pyc?
assert-satser, vilket är anledningen till att den separata filändelsen togs bort i Python 3.5.Jag har en .pyo-fil från ett gammalt projekt. Kan jag fortfarande använda den?
.pyc; Python 3.5 och senare skapar inte .pyo-filer men kan fortfarande exekvera dem.