Como executar um arquivo .pyc (python compilado)?

18

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?

Selby Rowley-Cannon
fonte

Respostas:

24

Como o arquivo python é compilado em bytes, é necessário executá-lo através do interpretador python

python yourfile.pyc

A razão pela qual você pode executar seus arquivos .py diretamente é porque você tem a linha

#!/usr/bin/python

ou

#!/usr/bin/env python

ou algo semelhante na primeira linha nos arquivos .py. Isso diz ao seu shell para executar o restante do arquivo com o interpretador python.

tomodachi
fonte
3
Para complementar esta resposta: um arquivo .pyc não é compilado no sentido mais estrito do termo, pois não é um código de máquina nativo. É, como a @tomdachi escreveu, o código de byte específico do python (muito semelhante a uma classe Java.), É por isso que ele ainda precisa do intérprete python para se expressar.
Pierre-Antoine
de fato, o pyc foi gerado apenas quando você importa o arquivo py. portanto, é inútil executar o arquivo pyc!
8 患有 癌 并且 的 工程师 来 陆家嘴 搞 金融 显然 是 为了
2

Para descompilar os arquivos .pyc python3 compilados, usei uncompyle6no meu Ubuntu OS atual da seguinte maneira:

  1. Instalação do uncompyle6:

    pip3 install uncompyle6
  2. Para criar um arquivo .py a partir do arquivo .pyc Execute:

    uncompyle6 -o . your_filename.pyc
  3. Automaticamente, um novo arquivo .py será criado com o mesmo nome de arquivo .pyc existente.

Dhawaleswar
fonte
-1

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.pycexiste algum (que é a versão compilada pelo código de bytes myprog.py) e se é tão recente ou mais recente que myprog.py. Nesse caso, o intérprete o executa. Se ele não existir, ou myprog.pyfor mais recente que ele (o que significa que você alterou o arquivo de origem), o intérprete primeiro compila myprog.pypara myprog.pyc.

Há uma exceção no exemplo acima. Se você colocar #! /usr/bin/env pythona primeira linha de myprog.py, torne-o executável e execute myprog.pypor si só.

Shashank Sai Sangu
fonte
1
Bem-vindo ao Ask Ubuntu ! Esta é uma boa explicação de por que os pycarquivos 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.
Melebius