Cómo hacer debugging de código en Python con Docker y Visual Studio Code

Curso Básico de Django v2

Take the first classes for free

SHARE THIS ARTICLE AND SHOW WHAT YOU LEARNED

Cuando nos acostumbramos a un IDE (Integrated Development Environment) tendemos a rechazar o descartar otras opciones casi que naturalmente.

Ese fue mi caso, luego de varios años de usar PyCharm en sus versiones Community y Professional pensé que había encontrado el IDE perfecto para desarrollar con Python y frameworks como Django, Flask y Falcon.

Pero no todo es color de rosa, esa comodidad que ofrece PyCharm viene con un costo de memoria RAM muy alto. Proyectos más grandes equivalen a menos RAM disponible y esto puede volver tu máquina muy lenta, sobre todo para mí que creía que mis 8GB de RAM bastaban para levantar la plataforma Platzi localmente.

“La necesidad es la madre de todas las invenciones.” Albert Einstein

En ese momento decidí darle una oportunidad a Visual Studio Code, en Platzi usamos Docker en las fases de desarrollo y producción, y mi primera pregunta fue: ¿con el código Python corriendo en contendores cómo puedo debuggearlo, evaluar expresiones y stacks, breakpoints? ¡Ayuda!
Algunos compañeros del equipo Product me dieron la recomendación:

Equiz, usa ipdb, con eso puedes debuggear.” Eduardo Álvarez

Esta opción la considero un poco limitada en comparación a todo lo que ofrece un IDE que se precie, tiene que haber algo más.

Por suerte, mi problema ya estaba resuelto y encontré la extensión Visual Studio Code Remote Development

Para instalar la extensión de VS Code debes tener los siguientes requisitos previamente instalados y configurados:

  1. VS Code
  2. Docker
  3. Cliente y llaves SSH

Con todos estos requisitos, ¡conectémonos a nuestro contenedor!

Pulsa la tecla F1 para desplegar el menú de comandos de VS Code y selecciona Attach to Running Container

Selecciona el contenedor donde reposa el código que quieres debuggear.

Luego verás en la esquina inferior izquierda que ya te has conectado al contenedor Docker

Ahora, creemos un archivo de configuración de VS Code, este archivo especial nos permitirá correr y hacer debug de Django. Desde el menú Debug selecciona Add Configuration:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "args": [
                "runserver",
                "0.0.0.0:8000",
                "--settings=demo.settings"
            ],
            "django": true
        }
    ]
}

Antes de comenzar a debuggear nuestro código, recomiendo instalar las extensiones Python y Django dentro del contenedor, esto nos dará syntax highlight, autocompletion y finalmente debugging dentro de VS Code.

Ya estamos listos para comenzar a debuggear, ¡pulsa la tecla F5 y que comience la magia!

Escribiendo este blogpost aprendí como desapegarme de una herramienta mejoró mi productividad en un 30%, así mismo espero sea de ayuda para la comunidad pythonista que no tiene mucha memoria RAM. 😃

Curso Básico de Django v2

Take the first classes for free

SHARE THIS ARTICLE AND SHOW WHAT YOU LEARNED

0 Comments

to write your comment

Related articles