Come eseguire un file .pyc (compilato python)?


18

Quando compilo un file Python, ottengo un file * .pyc. Quando provo a eseguirlo, ricevo un messaggio che dice che non esiste un programma per eseguirli. Quando cerco un programma online tramite quell'opzione, dice che non ce ne sono. Qualcuno può aiutarmi a eseguire i file lì?

Risposte:


24

Poiché il tuo file Python è compilato in byte, devi eseguirlo attraverso l'interprete Python

python yourfile.pyc

Il motivo per cui puoi eseguire direttamente i tuoi file .py è perché hai la linea

#!/usr/bin/python

o

#!/usr/bin/env python

o qualcosa di simile sulla prima riga nei file .py. Questo dice alla tua shell di eseguire il resto del file con l'interprete python.


3
Per completare questa risposta: un file .pyc non viene compilato nel senso più stretto del termine, in quanto non è un codice macchina nativo. È, come ha scritto @tomdachi, un byte-code specifico per Python (molto simile a una .class Java), per questo ha ancora bisogno dell'interprete Python per la conferenza.
Pierre-Antoine,

infatti, il pyc è stato generato solo quando si importa il file py. quindi è inutile eseguire il file pyc!
哈哈哈 患有 癌 并且 卓越 的 工程师 来 陆家嘴 搞 金融 显然 是 为了 理想 哈哈哈

2

Per decompilare i file .pyc python3 compilati, ho usato uncompyle6nel mio attuale sistema operativo Ubuntu come segue:

  1. Installazione di uncompyle6:

    pip3 install uncompyle6
  2. Per creare un file .py dal file .pyc Esegui:

    uncompyle6 -o . your_filename.pyc
  3. Verrà creato automaticamente un nuovo file .py con lo stesso nome file .pyc esistente.


-1

Python compila i file .py e li salva come file .pyc in modo da poterli fare riferimento nelle invocazioni successive. Il file .pyc contiene il bytecode compilato dei file sorgente di Python, che è quello in cui l'interprete Python compila la fonte. Questo codice viene quindi eseguito dalla macchina virtuale di Python. Non c'è nulla di male nell'eliminarli (.pyc), ma risparmieranno tempo di compilazione se stai facendo un sacco di elaborazioni.

Python è un linguaggio interpretato, al contrario di un linguaggio compilato, sebbene la distinzione possa essere sfocata a causa della presenza del compilatore bytecode. Compilare di solito significa convertire in codice macchina che è quello che funziona più velocemente. Ma gli interpreti prendono il testo leggibile dall'uomo e lo eseguono. Possono farlo con uno stadio intermedio.

Ad esempio, quando si esegue il file di origine myprog.py, l'interprete python cerca innanzitutto se ne myprog.pycesiste una (che è la versione compilata con codice byte di myprog.py) e se è recente o più recente di myprog.py. In tal caso, l'interprete lo esegue. Se non esiste, o myprog.pyè più recente di quello che (il che significa che è modificato il file di origine), l'interprete prime compilazioni myprog.pya myprog.pyc.

C'è un'eccezione all'esempio sopra. Se si inserisce #! /usr/bin/env pythonla prima riga di myprog.py, renderlo eseguibile e quindi eseguirlo myprog.pyda solo.


1
Benvenuto in Ask Ubuntu ! Questa è una bella spiegazione del perché i pycfile esistono ma non hai risposto alla domanda su come eseguirli. Può essere qualificato come un commento molto esteso, non una risposta . Si prega di modificare il tuo post per aggiungere una risposta reale.
Melebio
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.