Guia paso a paso para configurar el debugger de VSCode con una app Python corriendo en Docker.
Pasos
1. Instalar debugpy
docker-compose run --rm api pip install debugpy2. Incluir debugpy al inicio de main.py
import debugpy
debugpy.listen(("0.0.0.0", 5678))3. Abrir el puerto en docker-compose.yml
api:
...
ports:
- 5678:56784. Agregar launch.json en .vscode
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Remote Attach",
"type": "python",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"pathMappings": [
{
"localRoot": "${workspaceRoot}/src",
"remoteRoot": "/app"
}
],
"justMyCode": true
}
]
}5. Levantar los contenedores y agregar un breakpoint() para testear.
Pyenv & Poetry: buenas prácticas
- Instalar Pyenv
- Instalar version de Python:
pyenv install 3.9 - Activar version:
pyenv global 3.9opyenv local 3.9para un proyecto - Instalar Poetry con version especifica:
pip install poetry==1.2.1 - Configurar virtualenv local:
poetry config --local virtualenvs.create true && poetry config --local virtualenvs.in-project true - Instalar dependencias:
poetry install - Verificar entorno:
poetry env info - Seleccionar interprete en VSCode:
CMD + SHIFT + P→ “Select Interpreter”
Comandos Poetry utiles
poetry add <paquete> # agregar dependencia
poetry run <comando> # ejecutar en el entorno
poetry shell # activar entorno virtual
poetry env info --path # path del interprete
pyenv versions # listar versiones instaladasKey points
- Pyenv permite gestionar multiples versiones de Python.
- Poetry permite gestionar dependencias por proyecto.
- Si usas Docker, la version de Poetry en el Dockerfile debe coincidir con la que usas localmente para no romper
poetry.lock. - Preferir instalar dependencias dentro del contenedor:
docker-compose run --rm api poetry add <paquete> - Para limpiar cache de Poetry:
rm -rf Library/Caches/pypoetry/*