programa - ejecutar script python en windows
¿Cómo mantener abierta la ventana de salida del script de Python? (14)
Acabo de comenzar con Python. Cuando ejecuto un archivo de script python en Windows, aparece la ventana de salida, pero desaparece instantáneamente. Necesito que permanezca allí para poder analizar mi resultado. ¿Cómo puedo mantenerlo abierto?
- Vaya here y descargue e instale Notepad ++
- Vaya here y descargue e instale Python 2.7 not 3.
- Comience, ejecute Powershell. Introduzca la siguiente.
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:/Python27", "User")
- Cierre Powershell y vuelva a abrirlo.
- Haga un directorio para sus programas. scripts de mkdir
- Abra ese directorio scripts de CD
- En Notepad ++, en un nuevo tipo de archivo:
print "hello world"
- Guarde el archivo como hello.py
- Vuelva a PowerShell y asegúrese de estar en el directorio correcto escribiendo dir. Debería ver su archivo hello.py allí.
- En el indicador de Powershell, escriba:
python hello.py
Además de input
y raw_input
, también puedes usar un ciclo while
infinito, como este: while True: pass
(Python 2.5 + / 3) o while 1: pass
(todas las versiones de Python 2/3). Sin embargo, esto podría usar potencia informática.
También puede ejecutar el programa desde la línea de comando. Escriba python
en la línea de comando (Mac OS X Terminal) y debería decir Python 3.?.?
(Su versión de Python) No muestra su versión de Python, o dice python: command not found
, busque cambios en los valores de PATH (valores de entorno, enumerados arriba) / escriba C:/(Python folder/python.exe
. Si eso es exitoso, escriba python
o C:/(Python installation)/python.exe
y el directorio completo de su programa.
Cree un archivo por lotes de Windows con estas 2 líneas:
python your-program.py
pause
En Windows 10 inserte al principio esto:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
¡Extraño, pero funciona para mí! (Junto con la entrada () al final, por supuesto)
En python 2 puedes hacerlo con: raw_input ()
>>print("Hello World!")
>>raw_input(''Waiting a key...'')
En python 3 puedes hacerlo con: input ()
>>print("Hello world!")
>>input(''Waiting a key...'')
Además, puedes hacerlo con el tiempo. Duerma (tiempo)
>>import time
>>print("The program will close in 5 seconds")
>>time.sleep(5)
Inicie el script desde la ventana de cmd ya abierta o al final del script agregue algo como esto en Python 2:
raw_input("Press enter to exit ;)")
O, en Python 3:
input("Press enter to exit ;)")
Para mantener la ventana abierta, estoy de acuerdo con Anurag y esto es lo que hice para mantener mis ventanas abiertas para pequeños programas de tipo de cálculo.
Esto solo mostraría un cursor sin texto:
raw_input()
El siguiente ejemplo le daría un mensaje claro de que el programa está hecho y no esperando otro mensaje de entrada dentro del programa:
print(''You have reached the end and the "raw_input()" function is keeping the window open'')
raw_input()
¡Nota!
(1) En python 3, no hay raw_input () , solo input () .
(2) Use comillas simples para indicar una cadena; de lo contrario, si escribe "double" alrededor de cualquier cosa, como "raw_input ()", pensará que es una función, variable, etc., y no texto.
En este próximo ejemplo, uso comillas dobles y no funcionará porque cree que hay una interrupción en las comillas entre "la" y "función", aunque cuando lo lees, tu propia mente puede tener un sentido perfecto de la misma:
print("You have reached the end and the "input()" function is keeping the window open")
input()
Con suerte, esto ayuda a otros que podrían estar empezando y aún no han descubierto cómo piensa la computadora todavía. Puede tomar un tiempo. : o)
Para mantener su ventana abierta en caso de excepción (aún, al imprimir la excepción usando https://.com/a/3702726/2436175 )
if __name__ == ''__main__'':
try:
## your code, typically one function call
except:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
print "Press Enter to continue ..."
raw_input()
Para mantener la ventana abierta en cualquier caso:
if __name__ == ''__main__'':
try:
## your code, typically one function call
except:
import sys
print sys.exc_info()[0]
import traceback
print traceback.format_exc()
finally:
print "Press Enter to continue ..."
raw_input()
Si desea ejecutar su secuencia de comandos desde un acceso directo de escritorio, haga clic con el botón derecho en su archivo python y seleccione Send to|Desktop (create shortcut)
. A continuación, haga clic con el botón derecho en el acceso directo y seleccione Propiedades. En la pestaña Acceso directo, seleccione el cuadro de texto Destino: agregue cmd /k
al frente de la ruta y haga clic en Aceptar. El acceso directo ahora debe ejecutar su secuencia de comandos sin cerrar y no necesita la input(''Hit enter to close'')
Tenga en cuenta que si tiene más de una versión de python en su máquina, agregue el nombre del ejecutable requerido de python entre cmd / k y la ruta scipt de esta manera:
cmd /k python3 "C:/Users/<yourname>/Documents/your_scipt.py"
Tienes pocas opciones:
Ejecute el programa desde una terminal ya abierta. Abra un símbolo del sistema y escriba:
python myscript.py
Para que funcione, necesitas el ejecutable de python en tu camino. Simplemente compruebe cómo editar variables de entorno en Windows y agregue
C:/PYTHON26
(o el directorio al que haya instalado python).Cuando el programa finalice, lo devolverá al indicador de cmd en lugar de cerrar la ventana.
Agregue código para esperar al final de su script. Para Python2, agregando ...
raw_input()
... al final del script lo hace esperar por la tecla Intro . Ese método es molesto porque tienes que modificar el guión, y debes recordar haberlo eliminado cuando hayas terminado. Especialmente molesto cuando se prueban scripts de otras personas. Para Python3, use
input()
.Use un editor que pause por usted. Algunos editores preparados para Python se detendrán automáticamente después de la ejecución. Otros editores le permiten configurar la línea de comandos que utiliza para ejecutar su programa. Encuentro particularmente útil configurarlo como "
python -i myscript.py
" cuando se ejecuta. Eso te deja en un shell de python después del final del programa, con el entorno del programa cargado, por lo que puedes seguir jugando con las variables y llamar a funciones y métodos.
Tuve un problema similar. Con Notepad ++ solía usar el comando: C:/Python27/python.exe "$(FULL_CURRENT_PATH)"
que cerraba la ventana del cmd inmediatamente después de que el código terminaba.
Ahora estoy usando cmd /kc:/Python27/python.exe "$(FULL_CURRENT_PATH)"
que mantiene abierta la ventana de cmd.
Usando atexit
, puede pausar el programa justo cuando sale. Si un error / excepción es el motivo de la salida, se pausará después de imprimir el stacktrace.
import atexit
# Python 2 should use `raw_input` instead of `input`
atexit.register(input, ''Press Enter to continue...'')
En mi programa, puse la llamada a atexit.register
en la cláusula except
, por lo que solo se detendrá si algo salió mal.
if __name__ == "__main__":
try:
something_that_may_fail()
except:
# Register the pause.
import atexit
atexit.register(input, ''Press Enter to continue...'')
raise # Reraise the exception.
puede combinar las respuestas antes: (para el usuario de Notepad ++)
presione F5 para ejecutar la secuencia de comandos actual y escriba en comando:
cmd /k python -i "$(FULL_CURRENT_PATH)"
de esta manera te mantienes en modo interactivo después de ejecutar tu script Notepad ++ python y puedes jugar con tus variables, etc. :)
cmd /k
es la forma típica de abrir cualquier aplicación de consola (no solo Python) con una ventana de consola que permanecerá después de que se cierre la aplicación. La forma más fácil en que puedo pensar para hacer eso, es presionar Win + R, escribir cmd /k
y luego arrastrar y soltar el script que desea en el diálogo Ejecutar.