Warum PY in PYC konvertieren?
Das Vorkompilieren nach .pyc ermöglicht es Python, den Analyse-Schritt beim nächsten Durchlauf zu überspringen, was eine geringfügige Verbesserung der Startgeschwindigkeit bringt. Es bietet zudem eine leichte Verschleierung, da der Bytecode kein menschenlesbarer Quellcode ist, obwohl er mit Werkzeugen wie uncompyle6 dekompiliert werden kann.
Wie man PY in PYC konvertiert
Python (py_compile) FREE
Führen Sie python -m py_compile yourscript.py in einem Terminal aus; die .pyc-Datei erscheint im Unterordner __pycache__ neben Ihrem Skript, benannt mit dem Python-Versions-Tag.
Python (compileall) FREE
Führen Sie python -m compileall /path/to/project aus, um jede .py-Datei in einem Verzeichnisbaum auf einmal zu kompilieren; alle .pyc-Dateien erscheinen in ihren jeweiligen __pycache__-Unterordnern.
Über diese Formate
Eine .py-Datei ist eine Python-Quellcodedatei - reiner Text mit einem Programm oder Skript, das in der Programmiersprache Python geschrieben wurde. Um den Code zu lesen, öffnen Sie die…
.PY-Details öffnen →Eine .pyc-Datei ist kompilierter Python-Bytecode, den CPython automatisch zwischenspeichert, um den Start zu beschleunigen. Normalerweise müssen Sie sie nicht öffnen oder anfassen. Zum…
.PYC-Details öffnen →Qualität & worauf zu achten ist
- Eine
.pyc-Datei ist an die exakte Python-Version gebunden, mit der sie kompiliert wurde - eine mit Python 3.12 kompilierte Datei wird in Python 3.11 oder früher nicht geladen, da jede Version eine eindeutige „Magic Number” im Header einbettet. .pycist kein echter Quellcodeschutz - Werkzeuge wieuncompyle6können Bytecode zurück in lesbaren Python-Quellcode dekompilieren; verlassen Sie sich nicht darauf, um geistiges Eigentum zu schützen.- Python 3 schreibt
.pyc-Dateien immer in einen__pycache__-Unterordner, niemals direkt neben die Quelldatei; die alte.pyo-Erweiterung für optimierten Bytecode wurde in Python 3.5 entfernt.
Häufig gestellte Fragen
Muss ich manuell nach PYC kompilieren oder macht Python das automatisch?
.pyc. Der manuelle py_compile-Befehl ist nützlich für das Vorkompilieren ohne Ausführung oder um Syntaxfehler frühzeitig zu finden.Kann ich nur die PYC-Dateien ohne den originalen PY-Quellcode verteilen?
.pyc-Dateien sind versionsspezifisch und können dekompiliert werden. Die gängige Praxis ist es, stattdessen den .py-Quellcode zu verteilen.Wo legt Python die PYC-Datei ab?
__pycache__-Unterordner neben der .py-Quelle, mit einem Namen wie yourscript.cpython-312.pyc, der die Python-Version widerspiegelt, die sie kompiliert hat.