Cómo detener el cierre de Python inmediatamente cuando se ejecuta en Microsoft Windows

Acabo de comenzar la universidad y vamos a utilizar python. Realmente no hemos hecho nada, así que descargué el progtwig y ejecuté algunos comandos de impresión, y eso es todo.

Cuando ejecuto mi archivo .py (un comando de print ), se cierra inmediatamente después de aparecer. Entiendo por qué hace esto: se le da el resultado, así que se hace lo que debe hacer, pero también entiendo que puede evitar que esto suceda.

Miré alrededor de este sitio web y ninguna de las soluciones dadas a esta pregunta funcionó, o eso no las entendí.

¿Hay un comando simple que pueda ingresar a mi editor IDLE que ponga el progtwig en espera o algo así? He intentado la input("prompt: ") según lo sugerido por alguien, y eso no hizo ninguna diferencia.

Si no hay un comando para esto, ¿hay alguna manera de cambiar la configuración en la computadora para que los progtwigs no se cierren automáticamente?

En Python 3, agregue lo siguiente al final de su código:

 input('Press ENTER to exit') 

Esto hará que el progtwig espere la entrada del usuario, al presionar ENTER, el progtwig terminará.

Puede hacer doble clic en su archivo script.py en Windows convenientemente de esta manera.

Lo único que funcionó para mí -i argumento de línea de comando.

Simplemente coloque todo el código de Python dentro de un archivo .py y luego ejecute el siguiente comando;

 python -i script.py 

Esto significa que si configura la variable -i y ejecuta su módulo, Python no se cierra en SystemExit. Lea más en este enlace .

Abra su cmd (símbolo del sistema) y ejecute los comandos de Python desde allí. (en Windows vaya a ejecutar o busque y escriba cmd) Debería tener este aspecto:

 python yourprogram.py 

Esto ejecutará su código en cmd y se dejará abierto. Sin embargo, para usar el comando python, Python debe instalarse correctamente para que cmd lo reconozca como un comando. Verifique la instalación adecuada y el registro variable para su sistema operativo si esto no sucede

Ejecute el comando utilizando el indicador de comandos de Windows desde la fuente de la biblioteca principal de Python. Ejemplo.

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

Si solo quieres un retraso

 from time import * sleep(20) 

Dependiendo de para qué lo estoy usando, o si estoy haciendo algo que otros usarán, por lo general solo input("Do eighteen backflips to continue") si es solo para mí, si otros van a usar, solo creo un archivo por lotes y pausa después

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

Uso lo anterior si va a haber archivos renombrados, movidos, copiados, etc. y mi cmd debe estar en la carpeta particular para que las cosas caigan donde las quiero, de lo contrario, solo

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

En Python 2.7, agregar esto al final de mi archivo py ( if __name__ == '__main__': funciona:

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

Poner

 input('Press ENTER to exit') 

al final para que se detenga.

Creo que soy demasiado tarde para responder a esta pregunta, pero de todos modos aquí no va nada.

Me he encontrado con el mismo problema antes y creo que hay dos soluciones alternativas que puede elegir.

  1. usando el sueño (_sometime)

from time import * sleep(10)

  1. usando un mensaje de aviso (note que estoy 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

Alternativamente, también puede usar un híbrido de esos dos métodos donde puede solicitar un mensaje y usar el modo de suspensión (en algún momento) para retrasar también el cierre de la ventana. La elección es tuya.

tenga en cuenta que lo anterior son solo ideas y si desea utilizar alguno de estos en la práctica, es posible que deba pensar un poco en la lógica de la aplicación.

Tarde aquí, pero en caso de que alguien venga de google —

Vaya a la ubicación de su archivo .py. Presione MAYÚS y luego haga clic con el botón derecho en cualquier lugar y elija abrir el símbolo del sistema desde aquí. Una vez que está arriba, simplemente añada

“Python NameOfTheProg.py” a la línea cmd

La razón por la que se está cerrando es porque el progtwig ya no se está ejecutando, simplemente agregue cualquier tipo de bucle o entrada para solucionar esto (o simplemente podría ejecutarlo en modo inactivo).

No pude encontrar en ninguna parte de Internet un verdadero no específico de script, haga doble clic y la ventana no cierra la solución. Supongo que soy demasiado perezoso para arrastrar y soltar o escribir cuando no lo necesito, así que, después de algunos experimentos, se me ocurrió una solución.

La idea básica es volver a asociar los archivos .py para que ejecuten un script inicial por separado antes de ejecutar el script deseado. La secuencia de comandos inicial inicia una nueva ventana de solicitud de comando con el parámetro / k que mantiene la solicitud de comando abierta después de completarse y ejecuta la secuencia de comandos deseada en la nueva ventana.

Tal vez haya buenas razones para no hacer esto, aquellos con más conocimiento, por favor, comenten si es así, pero me imagino que si me encuentro con alguno es fácil volver si es necesario. Un posible efecto secundario no deseado es arrastrar y soltar o escribir y ejecutar desde un símbolo del sistema ahora abre un segundo símbolo del sistema en lugar de ejecutarse en el símbolo del sistema que arrastró o escribió.

Ahora, para la implementación, llamo al script de python inicial python_cmd_k.pyw. Estoy usando Python 3.7. El código requerido puede diferir para otras versiones. Cambie la ruta C: \ Python37 \ python.exe a la ubicación de su instalación de python. Asocie los archivos .pyw a pythonw.exe (no a python.exe) a través de Windows si aún no lo están.

 import subprocess import sys #Run a python script in a new command prompt that does not close command = 'start cmd /k C:\Python37\python.exe "' + sys.argv[1] + '"' subprocess.run(command, shell=True) 

Esto se ejecuta cada vez que hace doble clic en cualquier script .py e inicia un nuevo símbolo del sistema para ejecutar el script en el que hizo doble clic. La ejecución a través de pythonw.exe suprime la ventana del símbolo del sistema cuando se ejecuta este script inicial. De lo contrario, si lo ejecuta a través de python.exe, aparecerá un parpadeo molesto de un símbolo del sistema como resultado de la primera ventana que se muestra brevemente cada vez. La secuencia de comandos deseada se muestra porque el código en la secuencia de comandos inicial anterior ejecuta la secuencia de comandos deseada con python.exe.

Ahora asocie los archivos .py con python.exe (no pythonw.exe) a través de Windows si aún no lo están y edite la entrada de registro para esta asociación (Exención de responsabilidad: haga una copia de seguridad de su registro antes de editarlo si no está seguro de lo que está haciendo ). No sé si hay diferentes rutas en el registro para la asociación de archivos para diferentes versiones de Windows, pero para mí es en:

 HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command 

Cambie los datos a la ruta pythonw.exe (no a python.exe) y agregue la ruta al script ptyhon anterior y “% 1” como argumentos (“% 1” pasa la ruta completa del archivo duplicado en el que se hizo clic). Por ejemplo, si pythonw.exe y python_cmd_k.pyw están en C: \ Python37 \ entonces:

 "C:\Python37\pythonw.exe" "C:\Python37\python_cmd_k.pyw" "%1" 

No es necesario colocar python_cmd_k.pyw en el mismo directorio que pythonw.exe siempre que proporcione la ruta correcta para ambos. Puede colocarlos en archivos .reg para cambiar fácilmente entre usar el script y el comportamiento predeterminado. Cambie las rutas según sea necesario en los ejemplos a continuación (ubicación en el registro, su instalación de python, la ubicación donde coloque su script python_cmd_k.pyw).

Con ptyhon_cmd_k.pyw (cambie las rutas según sea necesario):

 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command] @="\"C:\\Python37\\pythonw.exe\" \"C:\\Python37\\python_cmd_k.pyw\" \"%1\"" 

Versión predeterminada (cambiar las rutas según sea necesario):

 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Classes\Applications\python.exe\shell\open\command] @="\"C:\\Python37\\python.exe\" \"%1\"" 

Bueno tengo un problema similar, se resuelve agregando Variable de Ambiente.

Añadir variables del sistema en la ventana

Nombre: PYTHONPATH

Valor: C:\Python27;

Tu camino de Python.