Ao compilar um arquivo python, recebo um arquivo * .pyc. Quando tento executar isso, recebo uma mensagem dizendo que não há programa para executá-los. Quando procuro um programa online por meio dessa opção, ele diz que não há nenhum. Alguém pode me ajudar a executar lá arquivos?
18
Para descompilar os arquivos .pyc python3 compilados, usei
uncompyle6
no meu Ubuntu OS atual da seguinte maneira:Instalação do uncompyle6:
Para criar um arquivo .py a partir do arquivo .pyc Execute:
Automaticamente, um novo arquivo .py será criado com o mesmo nome de arquivo .pyc existente.
fonte
O Python compila os arquivos .py e os salva como arquivos .pyc, para poder referenciá-los em invocações subsequentes. O .pyc contém o código de código compilado dos arquivos de origem Python, que é o que o interpretador Python compila a fonte. Esse código é então executado pela máquina virtual do Python. Não há mal em excluí-los (.pyc), mas eles economizarão tempo de compilação se você estiver processando muito.
Python é uma linguagem interpretada, em oposição a uma linguagem compilada, embora a distinção possa ser imprecisa devido à presença do compilador de bytecodes. Compilar geralmente significa converter em código de máquina, que é o que roda mais rápido. Mas os intérpretes pegam o texto legível por humanos e o executam. Eles podem fazer isso com um estágio intermediário.
Por exemplo, quando você executa o arquivo de origem myprog.py, o interpretador python primeiro verifica se
myprog.pyc
existe algum (que é a versão compilada pelo código de bytesmyprog.py
) e se é tão recente ou mais recente quemyprog.py
. Nesse caso, o intérprete o executa. Se ele não existir, oumyprog.py
for mais recente que ele (o que significa que você alterou o arquivo de origem), o intérprete primeiro compilamyprog.py
paramyprog.pyc
.Há uma exceção no exemplo acima. Se você colocar
#! /usr/bin/env python
a primeira linha demyprog.py
, torne-o executável e executemyprog.py
por si só.fonte
pyc
arquivos existem, mas você não respondeu à pergunta sobre como executá-los. Pode ser qualificado como um comentário muito extenso, não como uma resposta . Por favor edite seu post para adicionar uma resposta real.