Trabajar con la ventana interactiva de Python en Visual Studio

Visual Studio proporciona una ventana interactiva de bucle read-evaluate-print (REPL) para cada entorno de Python, que ofrece mejoras con respecto al REPL obtenido con el comando python.exe de la línea de comandos. La ventana Interactiva de Python le permite escribir código de Python arbitrario y ver resultados inmediatos. Este enfoque de codificación permite obtener información y experimentar con las API y las bibliotecas, así como desarrollar de manera interactiva código de trabajo para incluirlo en sus proyectos.

Captura de pantalla de la ventana interactiva de bucle read-evaluate-print (REPL) de Python en Visual Studio 2022.

Captura de pantalla de la ventana interactiva de bucle read-evaluate-print (REPL) de Python en Visual Studio.

Visual Studio tiene muchos modos REPL de Python entre los que elegir:

REPL Descripción Editar Depuración Imágenes
Estándar REPL predeterminado, que habla directamente con Python. Edición estándar (multilínea y más) Sí, mediante $attach No
Depurar REPL predeterminado, que habla con el proceso de Python depurado. Edición estándar Solo depuración No
IPython REPL habla con el back-end de IPython Comandos de IPython, ventajas de PyLab No Sí, insertado en REPL
IPython sin Pylab REPL habla con el back-end de IPython IPython estándar No Sí, ventana independiente

En este artículo se describen los modos de REPL Estándar y Depurar. Para obtener más información sobre los modos de IPython, vea Uso de IPython en la ventana interactiva.

Para obtener un tutorial detallado con ejemplos, incluidas las interacciones con el editor como Ctrl+Entrar, vea Uso de la ventana interactiva de REPL.

Requisitos previos

Visual Studio para Mac no se admite actualmente. Para obtener más información, consulte ¿Qué sucede con Visual Studio para Mac? Visual Studio Code en Windows, Mac y Linux funciona bien con Python a través de extensiones disponibles.

Abrir la ventana interactiva

Hay varias maneras de abrir la ventana interactiva de un entorno de Python.

  • Desde la ventana Entornos de Python:

    1. Seleccione Ver>Otras ventanas>Entornos de Pythonpara abrir la ventana Entornos de Python (o use el teclado: Ctrl+K>Ctrl).+`

    2. En la ventana Entornos de Python, seleccione un entorno y cambie a la página Información general del entorno.

    3. En la página Información general, seleccione la opción Abrir ventana interactiva.

    Captura de pantalla que muestra cómo usar la opción Abrir ventana interactiva para el entorno seleccionado en Visual Studio 2022.

    Captura de pantalla que muestra cómo usar la opción Abrir ventana interactiva para el entorno seleccionado en Visual Studio.

  • En el menú Ver de la herramienta Visual Studio, seleccione Otras ventanas>Ventana interactiva de Python:

    Captura de pantalla que muestra cómo usar la opción de menú Ver la ventana interactiva de Python en Visual Studio 2022.

    Captura de pantalla que muestra cómo usar la opción de menú Ver la ventana interactiva de Python en Visual Studio.

  • En el menú Depurar de la barra de herramientas de Visual Studio, seleccione Ejecutar <Proyecto | Archivo> en Python interactivo o use el método abreviado de teclado Mayús+Alt+F5. Puede abrir una ventana interactiva para el archivo de inicio en el proyecto o para cualquier archivo independiente:

    Captura de pantalla que muestra cómo usar la opción de menú Ejecutar proyecto en Python interactivo en Visual Studio 2022.

    Captura de pantalla que muestra cómo usar la opción de menú Ejecutar proyecto en Python interactivo en Visual Studio.

Otra opción es enviar el código que está escribiendo en el editor de Visual Studio a la ventana interactiva. Este enfoque se describe en Enviar código a la ventana interactiva.

Explorar las opciones de la ventana interactiva

Puede controlar varios aspectos de la ventana interactiva, como la ubicación de los archivos de script de inicio y cómo funcionan las teclas de dirección dentro del entorno de ventana. Para acceder a las opciones, seleccione Herramientas>Opciones>Python>Ventanas interactivas:

Captura de pantalla de las opciones de ventanas interactivas de Python en Visual Studio.

Las opciones se describen en detalle en Opciones de ventana interactiva de Python para Visual Studio.

Uso de la ventana interactiva

En la ventana interactiva, puede empezar a escribir el código línea a línea en el símbolo del sistema de Python de REPL >>>. A medida que escribe cada línea, Visual Studio ejecuta el código, incluida la importación de módulos necesarios y la definición de variables.

Cuando Visual Studio detecta que una línea de código no forma una instrucción completa, el mensaje de código cambia a la continuación de REPL .... Este mensaje indica que debe especificar más líneas de código para completar el bloque de instrucciones. Visual Studio espera la sintaxis de cierre antes de intentar ejecutar el bloque de código.

Al definir una instrucción for, la primera línea de código inicia el bloque for y termina con dos puntos. El bloque puede constar de una o varias líneas de código que definen las tareas que se van a completar durante el bucle for. Al seleccionar Entrar en una línea en blanco, la ventana interactiva cierra el bloque y Visual Studio ejecuta el código.

Comparación de REPL y la línea de comandos

La ventana interactiva ofrece mejoras con respecto a la experiencia de REPL de línea de comandos de Python habitual, ya que aplica sangrías automáticamente a las instrucciones que pertenecen a un ámbito adyacente. Ambos enfoques permiten usar las teclas de dirección para desplazarse por el código especificado. La ventana interactiva también ofrece elementos multilínea, mientras que el REPL de la línea de comandos solo ofrece líneas simples.

Metacomandos

La ventana interactiva admite varios metacomandos. Todos los metacomandos comienzan con el símbolo de dólar $. Puede escribir $help para ver una lista de metacomandos y $help <command> para obtener los detalles de uso de un comando específico. En la tabla siguiente se resumen los metacomandos.

Metacomando Descripción
$$ Insertar un comentario, lo que resulta útil para comentar el código a lo largo de la sesión.
$cls, $clear Borrar el contenido de la ventana del editor, pero dejar intactos el historial y el contexto de ejecución.
$help Muestra una lista de comandos o ayuda sobre un comando específico.
$load Cargar los comandos del archivo y ejecutarlos hasta que terminan.
$mod Cambiar el ámbito actual al nombre del módulo especificado.
$reset Restablecer el entorno de ejecución al estado inicial, pero mantener el historial.
$wait Esperar al menos el número de milisegundos especificado.

También puede ampliar los comandos con extensiones de Visual Studio mediante la implementación y exportación de la clase IInteractiveWindowCommand. Para obtener más información, consulte un (ejemplo en GitHub).

Cambiar el ámbito de la ventana interactiva

De forma predeterminada, la ventana interactiva de un proyecto se ajusta al archivo de inicio del proyecto, como si ejecutara el archivo del programa desde el símbolo del sistema. Para un archivo independiente, el ámbito se establece en dicho archivo. En cualquier momento durante la sesión de REPL, puede usar la lista desplegable Ámbito del módulo para cambiar el ámbito:

Captura de pantalla que muestra cómo usar el menú desplegable Ámbito de módulo para cambiar el ámbito en la ventana interactiva de Visual Studio 2022.

Captura de pantalla que muestra cómo usar el menú desplegable Ámbito del módulo para cambiar el ámbito en la ventana interactiva.

Después de importar un módulo, como import importlib, aparecen opciones en el menú desplegable de Ambito de módulo para cambiar a cualquier ámbito en dicho módulo. Un mensaje en la ventana interactiva notifica el cambio al nuevo ámbito, para que pueda realizar un seguimiento de cómo ha adoptado un estado determinado durante la sesión revisando el historial de comandos.

Si escribe el comando dir() en un ámbito, Visual Studio muestra identificadores válidos en dicho ámbito, como nombres de funciones, clases y variables. En la imagen siguiente se muestra el resultado del comando dir() para el ámbito importlib:

Captura de pantalla que muestra la salida en la ventana interactiva para el ámbito de importlib en Visual Studio 2022.

Captura de pantalla que muestra la salida de la ventana interactiva para el ámbito de importlib.

Enviar código a la ventana interactiva

Además de trabajar directamente en la ventana interactiva, puede enviar código en el editor de Visual Studio a la ventana. Este comando resulta útil para el desarrollo de código iterativo o evolutivo, incluido probar el código a medida que se desarrolla.

  1. Abra un archivo de código en el editor de Visual Studio y seleccione parte del código o todo el código.

  2. Haga clic con el botón derecho en el código seleccionado y seleccione Enviar a interactiva (o use el método abreviado de teclado Ctrl+E, E).

    Captura de pantalla que muestra cómo usar la opción de menú Enviar a la ventana Interactiva de Python en Visual Studio 2022.

    Captura de pantalla que muestra cómo usar la opción de menú Enviar a la ventana Interactiva de Python en Visual Studio.

Modificación y ejecución de código

Después de enviar código a la ventana interactiva y ver la salida, puede modificar el código y probar los cambios. Use las flechas arriba y abajo para desplazarse hasta el código del historial de comandos de la ventana. Modifique el código y ejecute el código actualizado seleccionando Ctrl+Entrar.

Al realizar cambios, si selecciona Entrar al final de una instrucción de código completa, Visual Studio ejecuta el código. Si la instrucción de código no está completa, Visual Studio inserta una nueva línea en la ventana.

Guardar código y quitar indicaciones

Después de completar el trabajo en el código, puede seleccionar el código actualizado en la ventana interactiva y pegarlo de nuevo en el archivo de proyecto para guardar el trabajo.

Al pegar código de la ventana interactiva en el editor, Visual Studio elimina el símbolo del sistema REPL >>> y el indicador de continuación ... de forma predeterminada. Este comportamiento permite transferir fácilmente código desde la ventana al editor.

Puede cambiar el comportamiento con la opción Pegar quita las solicitudes de REPL para la ventana interactiva:

  1. Seleccione Herramientas>Opciones para abrir el diálogo Opciones.

  2. Expanda la sección Editor de texto>Python>Formato.

  3. Desactive la opción Pegar quita los avisos de REPL.

  1. Seleccione Herramientas>Opciones para abrir el diálogo Opciones.

  2. Expanda la sección Editor de texto>Python>Avanzadas.

  3. Desactive la opción Pegar quita los avisos de REPL.

Al borrar la opción, los caracteres de indicación se conservan en el código pegado desde la ventana. Para obtener más información, vea Opciones: opciones varias.

Revisar el comportamiento de IntelliSense

La ventana interactiva incluye sugerencias de IntelliSense basándose en los objetos activos, a diferencia del editor de código, en el que IntelliSense se basa exclusivamente en el análisis de código fuente. Como resultado, las sugerencias de IntelliSense en la ventana interactiva son más correctas, sobre todo, con el código generado de forma dinámica. El inconveniente es que las funciones con efectos secundarios como los mensajes de registro pueden afectar a su experiencia de desarrollo.

Puede ajustar el comportamiento de IntelliSense a través de las opciones de Finalización:

  1. Seleccione Herramientas>Opciones para abrir el diálogo Opciones.

  2. Expanda la sección Python>Ventanas interactivas.

  3. Ajuste la configuración en el grupo Modo de finalización, como Nunca evaluar expresiones o Ocultar sugerencias de análisis estáticos.

Para obtener más información, consulte Opciones: opciones de ventanas interactivas.