2009-09-16 7 views
43

Come posso compilare ed eseguire un file python (estensione * .py)?Compilazione Python

+17

perché i downvotes? Sembra una domanda perfettamente valida per una persona che non ha familiarità con Python per chiedere. – Glen

+7

in particolare provenienti da C, C++, Java, ecc. – geowa4

+4

-1: Si prega di controllare il tutorial Python prima di chiedere qui. http://docs.python.org/tutorial/ –

risposta

27

python yourfile.py

bisogna avere python installato prima. Compilerà automaticamente il tuo file in un binario .pyc e poi lo eseguirà per te. Si ricompilerà automaticamente ogni volta che il tuo file cambia.

http://www.python.org/download/

+1

Non file .pyc file byte-code – Will03uk

+1

Sì. Sono byte-code e binari, anche se non sono "binari" nel tradizionale "il sistema può semplicemente eseguirli". –

15

Python compila i propri file in bytecode prima di eseguirli. Ciò significa che devi avere un interprete Python installato sul computer di destinazione.

Se non si desidera installare Python sul computer di destinazione, utilizzare py2exe, py2app o qualcosa di simile.

+0

@gs: dovresti averlo indirizzato al sito Web Python http://docs.python.org/tutorial piuttosto che parlare di py2exe e py2app –

+5

@Helen Neely, a volte è bello ottenere rapidamente una risposta specifica, invece di eseguire il mining un tutorial laborioso. Attualmente, una rete di 3 persone ha trovato questa domanda utile; quello dovrebbe dirti qualcosa. –

5

Per aggiungere al Paul McMillan's answer, se siete su Windows e si dispone di Python installato, quindi tutti i file che terminano con l'estensione ".py" dovrebbe essere associato con il python eseguibile, che consente di eseguire in questo modo:

> myfile.py 

In * nix, è possibile iniziare il file con #!/usr/bin/python ed eseguirlo in questo modo:

$ ./myfile.py 

Nei sistemi * nix, se i primi due caratteri di un file sono #! allora eseguirà il fil e con l'eseguibile specificato, che ho impostato qui per /usr/bin/python.

+1

In Windows, mi piace anche aggiungere .py alla variabile d'ambiente PATHEXT, rendendo eseguibile i file .py proprio come .exe (cioè senza digitare l'estensione). Hai ancora bisogno di Python installato. –

+0

Ah! È necessario eseguire 'chmod u + x * .pyc' per fornire all'utente le autorizzazioni eseguibili ** e ** deve essere un file .pyc. Quindi, puoi fare './Program.pyc' – dylnmc

+0

Ho imparato che puoi farlo per entrambe le estensioni py e pyc. L'interprete (in quasi tutti i casi) si affida all'interprete python per farlo. – dylnmc

1

Sulla maggior parte dei sistemi di tipo Unix, è possibile utilizzare lo shebang per indicare al sistema operativo quale interprete deve essere chiamato. È sufficiente mettere

#!/path/to/python 

nella prima riga del file, in cui, naturalmente, si deve sostituire "/ path/to /" con il percorso che hai sul tuo sistema. Nella maggior parte dei casi questo sarebbe "/ usr/bin/python" o "/ usr/local/bin/python". Sui sistemi Unix si potrebbe anche cercare il percorso con

"#!usr/bin/env python" 

o invocare il comando

which python 

per trovare il percorso. È quindi possibile eseguire il programma con il comando

./yourprogram.py 

Se ti dice che non avete il permesso di farlo, è necessario utilizzare il comando

chmod a+x yourprogram.py 
3

Se si desidera trasformare un file sorgente Python in un .exe a doppio clic su Windows, è possibile utilizzare py2exe, che può aiutare a creare un pacchetto facile da distribuire.

+0

Funziona solo con python 2. – starbeamrainbowlabs

8

Python è un linguaggio interpretato, quindi non è necessario compilarlo; solo per eseguirlo. Come succede, la versione standard di python lo compili in "bytecode", proprio come fa Java etc., e lo salverà (in file .pyc) ed eseguirà la prossima volta, risparmiando tempo, se non si è aggiornato il file da Se hai aggiornato il file, verrà ricompilato automaticamente.

È inoltre possibile eseguire python con un flag -O, che genererà i file .pyo anziché .pyc. Non sono sicuro che faccia molta differenza. Se la velocità è importante, usa psyco.

E sì, su Unix (incluso Linux, BSD e Mac OS X, o in una shell Unix su Windows) è possibile utilizzare una riga shebang nella parte superiore del file per far funzionare automaticamente il file usando python. Su Windows, l'equivalente è associare i file .py con python.exe e quindi assicurarsi che la variabile d'ambiente PATHEXT includa le estensioni ".PY".

Tuttavia, per Windows, è più probabile che vogliate scrivere un programma in python (possibilmente usando PyQT4 e ERIC4) che ha un file .pyw come suo script principale e ha .pyw associato a pythonw (che viene fornito con python Su Windows). Questo ti permetterà di eseguire script Python su Windows proprio come altri programmi della GUI. Per la pubblicazione e la distribuzione, probabilmente si desidera compilare un file eseguibile usando qualcosa come py2exe, come già menzionato da altri.

+1

La lingua non è interpretata, l'implementazione è – Will03uk

10

Se si vuole solo compilare i sorgenti, senza di loro esecuzione, è possibile fare questo

compileall.py <directory> 

questo comando compilare il codice Python in quella directory ricorsivamente

compileall script si trova di solito nella directory come

/usr/local/lib/python2.6 

cioè <prefix>/lib/python2.6 (o simili, secondo prefissi imposta una configurazione python)

Come suggerisce Lulu, dovresti assicurarti che i file .pyc e .pyo risultanti siano eseguibili dagli utenti che ti interessano.

compileall può essere utilizzato anche come modulo

import compileall 
compileall.compile_dir(path) 
0

risposta per Windows

  1. prima è necessario installare python
  2. variabile del percorso quindi impostare
  3. dopo che scrivere il vostro python programma e salva
  4. pensare che ci sia un programma Python che il nome "hello.py"
  5. cmd.exe aperta
  6. poi vai il percorso che è stato salvato il file "hello.py",
  7. e quindi digitare python hello.py e premere immettere chiave.

ora il codice python viene compilato automaticamente e mostra il risultato.

+3

passaggio 0. accendi il computer e accedi a windows .. –