Desarrollador Python: pregunta de entrevista
¿Cómo gestionas dependencias de Python?
Gestiona dependencias Python con un archivo de proyecto y un lock reproducible, separa runtime de desarrollo, fija entornos desplegables y actualiza mediante cambios probados y revisables.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
La gestión de dependencias separa lo que el proyecto declara de lo que se instala. pyproject.toml lista las dependencias directas con rangos de versión y grupos opcionales para desarrollo y pruebas; un fichero lock registra las versiones exactas y hashes para que cada entorno instale el mismo conjunto. Herramientas como uv, Poetry o pip-tools producen el lock; los entornos virtuales aíslan proyectos; CI instala desde el lock y falla si se desvía. Las actualizaciones llegan como pull requests revisados con pruebas, no como lo que pip resolvió hoy.
Ejemplo
Un servicio declara fastapi y sqlalchemy en pyproject.toml, versiona uv.lock y el Dockerfile ejecuta uv sync --frozen para que la imagen contenga exactamente las versiones probadas. Dependabot abre un pull request cuando aparece una versión menor de sqlalchemy, la suite corre contra ella y el lock cambia solo tras la revisión.
Errores frecuentes
- Desplegar desde un requirements con rangos sin fijar y obtener un build distinto cada semana.
- Instalar paquetes globalmente en lugar de en un entorno virtual por proyecto.
- Fijar todo a mano y no actualizar nunca porque el proceso es doloroso.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.