Por que converter PY para PYC?
A pré-compilação para .pyc permite que o Python pule a etapa de análise na próxima execução, proporcionando uma pequena melhoria na velocidade de inicialização. Também fornece uma leve ofuscação, já que o bytecode não é um código-fonte legível por humanos, embora possa ser descompilado com ferramentas como uncompyle6.
Como converter PY para PYC
Python (py_compile) FREE
Execute python -m py_compile yourscript.py em um terminal; o arquivo .pyc aparecerá na subpasta __pycache__ ao lado do seu script, nomeado com a tag da versão do Python.
Python (compileall) FREE
Execute python -m compileall /path/to/project para compilar todos os arquivos .py em uma árvore de diretórios de uma só vez; todos os arquivos .pyc aparecerão em suas respectivas subpastas __pycache__.
Sobre estes formatos
Um arquivo .py é um arquivo de código-fonte Python - texto simples contendo um programa ou script escrito na linguagem Python. Para ler o código, abra-o em qualquer editor de texto. Para…
Abrir detalhes de .PY →Um arquivo .pyc é um bytecode Python compilado que o CPython armazena em cache automaticamente para acelerar a inicialização. Normalmente, você não precisa abri-lo ou tocá-lo. Para executar…
Abrir detalhes de .PYC →Qualidade e o que observar
- Um arquivo
.pycestá vinculado à versão exata do Python que o compilou - um arquivo compilado com Python 3.12 não carregará no Python 3.11 ou anterior, porque cada versão incorpora um número mágico exclusivo no cabeçalho. - O
.pycnão é uma proteção real de código-fonte - ferramentas comouncompyle6podem descompilar o bytecode de volta para o código-fonte Python legível; não confie nele para proteger propriedade intelectual. - O Python 3 sempre grava arquivos
.pycem uma subpasta__pycache__, nunca ao lado do arquivo fonte; a antiga extensão de bytecode otimizado.pyofoi removida no Python 3.5.
Perguntas frequentes
Preciso compilar manualmente para PYC ou o Python faz isso automaticamente?
.pyc automaticamente na primeira vez que é executado. O comando manual py_compile é útil para pré-compilar sem executar ou para capturar erros de sintaxe antecipadamente.Posso distribuir apenas os arquivos PYC sem o código-fonte PY original?
.pyc são específicos da versão e podem ser descompilados. A prática padrão é distribuir o código-fonte .py em vez disso.Where does Python put the PYC file?
__pycache__ subfolder next to the .py source, with a name like yourscript.cpython-312.pyc reflecting the Python version that compiled it.