2009-12-24 16 views
28

Sono nuovo nel linguaggio di programmazione Python. Mi stavo chiedendo se è possibile compilare un programma scritto in Python.È possibile compilare un programma scritto in Python?

+3

in realtà non "compili" uno script python. lo esegui con l'interprete Python. – ghostdog74

+10

@ ghostdog74 - Sì, ma Python _can_ essere compilato. –

+1

@andrew, sì, so che Python può essere compilato. Questo ragazzo è nuovo di Python, quindi penso che intendesse la compilazione come quello che si fa con C per esempio, non più roba avanzata come i file py2exe o pyc ... – ghostdog74

risposta

31

Penso Compiling Python Code sarebbe un buon punto di partenza:

codice sorgente Python è automaticamente compilato in bytecode Python dal CPython interprete. Il codice compilato è di solito memorizzato in file PYC (o PYO), e viene rigenerato quando l'origine è aggiornata a o quando altrimenti necessario.

di distribuire un programma per le persone che già hanno Python installato, è possibile sia i file PY nave oi file PYC . Nelle versioni recenti, è possibile creare anche un archivio ZIP contenente file PY o PYC e utilizzare "script di boot" per aggiungere l'archivio ZIP al percorso.

Per “compilare” un programma Python in un eseguibile, utilizzare uno strumento di raggruppamento, ad esempio come di Gordon McMillan installatore (alternativa download) (cross-platform), di Thomas Heller py2exe (Windows), Anthony Tuininga di cx_Freeze (multipiattaforma), o Bob py2app di Ippolito (Mac). Questi strumenti inseriscono i tuoi moduli e file di dati in un tipo di file di archivio e creano un file eseguibile che imposta automaticamente le cose in modo che i moduli vengano importati da quell'archivio. Alcuni strumenti possono incorporare l'archivio nell'eseguibile stesso.

1

python compilare al volo quando lo si esegue.

eseguire un file .py da (linux): python abc.py

2

Python è un linguaggio interpretato, in modo non è necessario compilare gli script per farli funzionare. Il modo più semplice per ottenerne uno è navigare nella sua cartella in un terminale ed eseguire "python somefile.py". Questo dipende dal fatto che tu abbia python installato da the python site.

Puoi compilare applicazioni python, ma generalmente non è qualcosa che un nuovo sviluppatore deve fare inizialmente. Se questo è ciò che stai cercando, dai uno sguardo allo py2exe. Questo prenderà il tuo script python e lo impacchetterà come un file eseguibile come qualsiasi programma sul tuo computer basato su Windows. Puoi anche compilare singoli file usando python, come descritto nella sezione "Compilazione dei moduli Python in byte code" al this site.

8

Non devi compilarlo. il primo che lo usi (import) è compilato dall'interprete CPython. Ma se vuoi davvero compilare ci sono diverse opzioni.

Per compilare a exe

Or 2 compilazione solo una specifica file * .py, si può semplicemente utilizzare

import py_compile 
py_compile.compile("yourpythoncode.py") 
+1

py2exe è particolarmente buono per questo. L'ho usato molto e sono MOLTO felice con esso. Può anche contenere tutte le istruzioni di importazione e più moduli/file di codice – inspectorG4dget

10

Python, come linguaggio dinamico, non può essere "compilato" in codice macchina staticamente, come C o COBOL può. Avrai sempre bisogno di un interprete per eseguire il codice, che, per definizione nella lingua, è un'operazione dinamica.

È possibile "tradurre" il codice sorgente in bytecode, che è solo un processo intermedio che l'interprete fa per accelerare il caricamento del codice, converte i file di testo, con commenti, spazi, parole come "se", 'def', 'in', ecc nel codice binario, ma le operazioni dietro sono esattamente le stesse, in Python, non nel codice macchina o in qualsiasi altra lingua. Questo è ciò che è memorizzato in file .pyc ed è anche portatile tra le architetture.

Probabilmente ciò di cui hai bisogno non è "compilare" il codice (che non è possibile) ma "incorporare" un interprete (nell'architettura giusta) con il codice per consentire l'esecuzione del codice senza un'installazione esterna dell'interprete. Per fare ciò, puoi usare tutti quegli strumenti come py2exe o cx_Freeze.

forse sono un po 'pedanti su questo :-P

12

Se si vuole veramente, si può sempre compilare con Cython. Questo genererà il codice C, che potrai compilare con qualsiasi compilatore C come GCC.

1

Evitare ridondanza Non ripeto la mia risposta qui.

Si prega di fare riferimento alla mia risposta here.

Problemi correlati