es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

  1. Iniciar una shell de pipenv si aún no se ha iniciado una.
    powershell
    pipenv shell

  2. Cambiar el directorio al directorio de origen del código.
    powershell
    cd {project_root/src}

  3. 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í
Tags:  , , ,

Answer

  1. Avatar for 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:

    pipenv --python 3.9
    

    Esto creará un nuevo entorno de Pipenv con Python 3.9. Puede activar el entorno ejecutando:

    pipenv shell
    

    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 archivo tasks.json con el siguiente contenido:

    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "pipenv",
                "type": "shell",
                "command": "pipenv run python -m debugpy --listen 5678",
                "presentation": {
                    "reveal": "always"
                },
                "problemMatcher": {
                    "owner": "python",
                    "fileLocation": [
                        "relative",
                        "${workspaceRoot}"
                    ],
                    "pattern": {
                        "regexp": "^\\s*File \"(...*?)\", line ([0-9]*)",
                        "file": 1,
                        "line": 2
                    }
                },
                "options": {
                    "cwd": "${workspaceFolder}/src"
                },
                "group": {
                    "kind": "build",
                    "isDefault": true
                }
            }
        ]
    }
    

    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 paquete debugpy, 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:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: Debug with Pipenv",
                "type": "python",
                "request": "attach",
                "port": 5678,
                "host": "localhost",
                "pathMappings": [
                    {
                        "localRoot": "${workspaceFolder}",
                        "remoteRoot": "${workspaceFolder}"
                    }
                ]
            }
        ]
    }
    

    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 el host 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 tarea pipenv, que lanzará el shell de pipenv, cambiará el directorio de trabajo a src 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.

Comments are closed.