Integración con el Editor
La integración con el IDE muestra errores de linting, problemas de tipos y correcciones de formato mientras escribes. Los bucles de retroalimentación rápidos mantienen el código limpio sin esperar a CI.
Receta
Extensiones de VS Code:
charliermarsh.ruff(Ruff)ms-python.mypy-type-checkero Pylance integrado (pyright)
// .vscode/settings.json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff",
"[python]": {
"editor.codeActionsOnSave": {
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
},
"ruff.configuration": "pyproject.toml"
}Cuándo usar esto:
- Configurar una nueva máquina de desarrollador
- Los errores de linting solo aparecen en CI (demasiado tarde)
- El equipo quiere un comportamiento de editor consistente a través de configuraciones confirmadas
Ejemplo de Trabajo
// .vscode/settings.json (confirma este archivo)
{
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"editor.formatOnSave": true,
"editor.defaultFormatter": "charliermarsh.ruff",
"ruff.enable": true,
"ruff.lint.run": "onSave",
"mypy-type-checker.args": ["src/"],
"mypy-type-checker.severity": {
"error": "Error",
"note": "Information"
}
}// .vscode/extensions.json
{
"recommendations": [
"charliermarsh.ruff",
"ms-python.python",
"ms-python.mypy-type-checker"
]
}Lo que esto demuestra:
- Formato al guardar con ruff
- Organización de importaciones al guardar
- Errores de mypy mostrados en línea
- Recomendaciones de extensiones para una configuración de un clic
Inmersión Profunda
Configuración de VS Code
| Configuración | Efecto |
|---|---|
formatOnSave | Formato automático con ruff |
source.fixAll.ruff | Corrección automática de violaciones de linting |
source.organizeImports.ruff | Ordena importaciones al guardar |
python.defaultInterpreterPath | Apunta al .venv del proyecto |
Configuración de PyCharm
- Ajustes > Herramientas > Ruff: habilitar, apuntar al
pyproject.tomldel proyecto - Ajustes > Herramientas > Python Integrated Tools > Default formatter: Ruff
- Habilitar plugin de mypy: Ajustes > Herramientas > Mypy, establecer la ruta de configuración
Trampas Comunes
- Intérprete de Python incorrecto - el lint se ejecuta contra paquetes del sistema. Solución: seleccionar el intérprete
.venven la barra de estado de VS Code. - No hay
.vscode/settings.jsonconfirmado - cada desarrollador se configura de manera diferente. Solución: confirmar configuraciones compartidas (no atajos personales). - Pylance y mypy ambos habilitados - errores duplicados. Solución: elegir un verificador de tipos en el editor; ejecutar el otro en CI si es necesario.
- Formato al guardar sin la extensión ruff - conflictos con Black o autopep8. Solución: establecer
defaultFormatterexplícitamente a ruff. - Ruff no encuentra
pyproject.toml- se ejecuta con los valores predeterminados. Solución: abrir la carpeta raíz del proyecto, no un subdirectorio.
Alternativas
| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Solo CI | Sin tiempo de configuración local | Desarrollo activo |
| Neovim + conform.nvim | Flujo de trabajo centrado en la terminal | El equipo usa VS Code |
| Editor Zed | Alternativa ligera | Necesita herramientas Django de PyCharm |
Preguntas Frecuentes
¿VS Code o PyCharm para Python?
Ambos funcionan bien. VS Code + ruff + Pylance es más ligero. PyCharm destaca en la refactorización de Django.
¿Cómo selecciono el venv en VS Code?
Paleta de Comandos > Python: Seleccionar Intérprete > elegir .venv/bin/python.
¿Pylance reemplaza a mypy?
Pylance (pyright) es rápido para editar. mypy en CI detecta problemas que Pylance podría pasar por alto. Usa ambos o elige uno.
¿Cómo deshabilito el formato al guardar para un archivo?
No es fácil por archivo. Usa bloques # fmt: off para secciones específicas.
¿Puedo compartir configuraciones sin forzarlas?
Usa extensions.json para recomendaciones; settings.json para valores predeterminados del equipo. Las anulaciones personales van en la configuración del usuario.
¿Cómo veo los errores de ruff en línea?
Instala la extensión ruff. Los errores aparecen como garabatos; pasa el ratón por encima para ver la explicación de la regla.
¿Configuración del plugin ruff de PyCharm?
Instala el plugin Ruff desde el marketplace. Habilítalo en Ajustes > Herramientas > Ruff.
¿Qué pasa con los devcontainers?
Añade extensiones a devcontainer.json customizations.vscode.extensions.
¿Cómo corrijo todos los problemas de ruff a la vez?
Paleta de Comandos > Ruff: Corregir todos los problemas corregibles automáticamente.
¿El editor muestra errores diferentes a los de CI?
Sincroniza la versión de ruff en rev de pre-commit con la dependencia de desarrollo en pyproject.toml.
Relacionado
- Configuración de Ruff - configuración de ruff
- Hooks de pre-commit - verificaciones a nivel de git
- mypy & pyright en CI - verificación de tipos
- Mejores Prácticas de Linting y Formato - estándares del equipo
Versiones de la Pila: Esta página fue escrita para Python 3.14.0, FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.