2012-09-11 11 views
18

Ho appena iniziato il college e useremo python. Non abbiamo davvero fatto nulla, quindi ho scaricato il programma e fatto alcuni comandi di stampa, e basta.Come fermare Python chiudendo immediatamente quando eseguito in Microsoft Windows

Quando si esegue il mio file .py (un comando print) si chiude immediatamente dopo essere stato visualizzato. Capisco perché lo fa - è dato l'output, quindi è fatto quello che deve fare - ma capisco anche che puoi impedire che ciò accada.

Mi sono guardato attorno in questo sito e nessuna delle soluzioni fornite a questa domanda ha funzionato, o quello o non le ho capite.

C'è un semplice comando che posso inserire nel mio editor IDLE che metterà il programma in attesa o qualcosa del genere? Ho provato input("prompt: ") come suggerito da qualcuno, e questo non ha fatto differenza.

Se non esiste un comando per questo, c'è un modo per modificare le impostazioni sul computer in modo che i programmi non si chiudano automaticamente?

+1

stai lavorando su una macchina Windows? Se lo sei, fai doppio clic su un file .py? Prova ad aprire un prompt dei comandi nella cartella in cui è presente il tuo file .py, quindi esegui 'python. your_file.py' quindi il tuo editor visualizzerà l'output ma rimarrà aperto in seguito. – Ctrlspc

+1

se l'input non funziona hai un errore che sta uccidendo il file prima di arrivarci ... eseguilo da "cmd" invece di cliccarlo come Ctrlspc ha detto :) –

+2

scusa ho appena notato un refuso e non posso modificare il mio commento ora , dovresti eseguire 'python your_file.py' (ignora il punto dopo python nel mio ultimo commento). – Ctrlspc

risposta

6

Aprire il cmd (prompt dei comandi) ed eseguire i comandi Python da lì. (su Windows vai a correre o di ricerca e digitare cmd) Esso dovrebbe essere simile a questo:

python yourprogram.py 

Questo eseguirà il codice in cmd e verrà lasciata aperta. Comunque per usare il comando python, Python deve essere installato correttamente in modo che cmd lo riconosca come un comando. Effettua il checkout dell'installazione corretta e della registrazione variabile per il tuo SO se questo non accade

+0

Ho fatto come hai detto e dice semplicemente "'python' non è riconosciuto come comando interno o esterno, programma eseguibile o file batch ". – keirbtre

+0

Non hai fatto come detto perché non hai registrato le variabili globali, come farlo spiegato qui http://docs.python.org/using/windows.html Specialmente guarda 3.3.1 – rodling

+1

Cosa? Sì, l'ho fatto come accennato. Se ha perso qualcosa, e io seguo le istruzioni, non sto "non facendo" quello che mi è stato detto di fare. Ho trovato le variabili d'ambiente ma non so cosa dovrei fare ora con loro, dato che quel collegamento non, per quanto posso vedere, ti dirà cosa fare. Grazie per ulteriori risposte btw :) – keirbtre

4

Esegui il comando utilizzando il prompt dei comandi di Windows dalla tua libreria Python principale. Esempio.

C:\Python27\python.exe directoryToFile\yourprogram.py 
+0

Questo ha funzionato perfettamente per me, grazie! – Tensigh

+0

o semplicemente trascina rilascia la tua .py nella finestra di cmd (e premi invio) – JinSnow

13

In Python 3, aggiungere il seguente alla fine del codice:

input('Press ENTER to exit') 

Questo farà sì che il programma di attesa per l'input dell'utente, con premendo Invio causando il programma per terminare.

È possibile fare doppio clic sul file script.py in Windows in questo modo.

+0

'Ciò farà in modo che il programma attenda l'input dell'utente eccetto se inneschi un errore nella riga prima del tuo' input() ' – JinSnow

+1

In python 2.7 .x usa raw_input() invece di input(). – G4mo

1

Se si desidera solo un ritardo

from time import * 

sleep(20) 
+1

Si prega di provare a formattare il codice nelle risposte (inserire 4 spazi prima di qualsiasi riga di codice). – dkar

1

In Python 2.7 aggiungendo questo alla fine del mio file py (if __name__ == '__main__':) funziona:

closeInput = raw_input("Press ENTER to exit") 
print "Closing..." 
5

L'unica cosa che ha funzionato per me -i argomento della riga di comando.

Basta inserire tutto il codice Python in un file .py e quindi eseguire il seguente comando;

python -i script.py 

Significa che se si imposta -i variabile ed esegue il modulo allora python non esce su SystemExit. Ulteriori informazioni su questo link.

+0

Le opzioni '-i' dicono di passare alla modalità interattiva (con prompt' >>> ') al termine del programma. Si può quindi uscire o interagire con oggetti glocali. L'esecuzione del codice da un editor IDLE ha lo stesso effetto. –

+0

In suvated, ma questa sarebbe solo una soluzione se qualcuno può spiegare come attivare automaticamente la modalità '-i' quando l'utente fa doppio clic su uno script Python. Questo è il caso d'uso della domanda; con l'uso della riga di comando, la finestra non si chiude comunque. – alexis

-1

Bene, ho ottenuto un problema simile, È risolto aggiungendo Variabile d'ambiente.

Variabili di sistema Add a Window

Nome: PYTHONPATH

Valore: C:\Python27;

Il percorso Python.

0

Penso di essere in ritardo per rispondere a questa domanda, ma comunque qui non va nulla.

Ho corso per lo stesso problema prima e penso che ci sono due soluzioni alternative si possono scegliere.

  1. usando sonno (_sometime)

from time import * sleep(10)

  1. utilizzando un messaggio di prompt (notare che io sto usando python 2,7)

exit_now = raw_input("Do you like to exit now (Y)es (N)o ? ")'

if exit_now.lower() = 'n'

//more processing here

alternativa è possibile utilizzare un ibrido di questi due metodi, come pure in cui è possibile richiedere per un messaggio e l'uso del sonno (a volte) per ritardare la finestra chiusura pure. la scelta è tua.

si prega di notare quanto sopra sono solo idee, e se si desidera utilizzare una di queste, in pratica, potrebbe essere necessario pensare alla tua logica dell'applicazione un po '.

1

A seconda di cosa sto usando, o se sto facendo qualcosa che altri useranno, io di solito solo input("Do eighteen backflips to continue") se è solo per me, se gli altri useranno semplicemente creo un file batch e lo metto in pausa dopo

cd '/file/path/here' 
python yourfile.py 
pause 

uso il sopra, se ci sta per essere file rinominato, spostato, copiato, ecc e la mia cmd deve essere nella cartella specifica cosa c'è da cadere dove li voglio, altrimenti - basta

python '/path/to/file/yourfile.py' 
pause 
Problemi correlati