Comando de depuración personalizado de Python en VSCode.
Descripción
He estado usando VSCode por un tiempo. Actualmente, la extensión Code Runner me permite ejecutar scripts de Python con comandos personalizados. Sin embargo, me gustaría saber si VSCode es capaz de realizar acciones adicionales en comparación con la extensión Code Runner, que simplemente ejecuta mi comando personalizado pipenv run python -u {open_file_path}
.
Objetivo
Actualmente uso pipenv para mis proyectos de Python. Me gustaría que VSCode iniciara una shell de pipenv y ejecutara un par de comandos para ejecutar mis scripts de Python.
Estos son los pasos que espero que VSCode pueda automatizar al presionar F5
para iniciar la depuración.
- Iniciar una shell de pipenv si aún no se ha iniciado una.
powershell
pipenv shell
- Cambiar el directorio al directorio de origen del código.
powershell
cd {project_root/src}
-
Ejecutar el script dentro de la shell de pipenv.
powerhsell
python {open_file_path}
He leído que el archivo launch.json
puede ejecutar una preLaunchTask
. Parece que podría resolver el punto uno de iniciar pipenv shell
. Todavía estoy tratando de entender cómo funciona esto.
Cualquier ayuda o indicación es muy apreciada.
Plataforma / Versión
- Plataforma: Windows 10
- Versión de Python: 3.9.9
- Versión de Pipenv: 2021.5.29
- Versión de VSCode: 1.62.3
- Extensiones de Microsoft Python habilitadas en VSCode: Sí
davy.ai
Solución Propuesta para Automatizar el Shell de Pipenv y los Scripts de Python en VSCode
Dado que el objetivo es lanzar un shell de pipenv y ejecutar scripts de Python, podemos hacer uso de las tareas y la funcionalidad de depuración de VSCode para lograr la automatización deseada.
Paso 1: Crear un Entorno de Pipenv
Si aún no ha creado un entorno de Pipenv para su proyecto de Python, puede hacerlo ejecutando el siguiente comando en su directorio de proyecto:
Esto creará un nuevo entorno de Pipenv con Python 3.9. Puede activar el entorno ejecutando:
Paso 2: Configurar la Tarea de Depuración
En VSCode, abra su proyecto y cree un directorio
.vscode
si no existe. Dentro de este directorio, cree un archivotasks.json
con el siguiente contenido:Este archivo de configuración define una tarea llamada “pipenv” que lanzará el shell de pipenv, cambiará el directorio de trabajo a
src
y comenzará el depurador de Python utilizando el paquetedebugpy
, el cual escuchará conexiones entrantes en el puerto 5678.Tenga en cuenta que el solucionador de problemas se configura para capturar errores de Python como el nombre del archivo y el número de línea.
Paso 3: Configurar la Configuración de Lanzamiento de Depuración
Para depurar su script de Python, deberá crear un archivo de configuración de lanzamiento llamado
launch.json
dentro del directorio.vscode
con el siguiente contenido:Este archivo de configuración define una configuración de depuración llamada “Python: Debug with Pipenv” con la solicitud establecida en “attach”, lo que significa que se conectará a un proceso en ejecución en lugar de iniciar uno nuevo. También especifica el
puerto
y elhost
a los que conectarse.Paso 4: Comenzar la Depuración
Para comenzar la depuración, abra el script de Python que desea depurar y presione
F5
. Esto iniciará la tareapipenv
, que lanzará el shell de pipenv, cambiará el directorio de trabajo asrc
y habilitará el depurador de Python. El depurador se conectará al script en ejecución y detendrá la ejecución en la primera línea. Ahora puede establecer puntos de interrupción, inspeccionar variables y realizar un seguimiento de su código utilizando la barra de herramientas de depuración.Conclusión
Utilizando las tareas y la funcionalidad de depuración de VSCode, pudimos automatizar el lanzamiento de un shell de pipenv y la ejecución de scripts de Python. Este método proporciona una forma conveniente de depurar su código dentro del contexto de su entorno de proyecto. Si tiene alguna pregunta adicional, no dude en preguntar.