DEV Community

Pedro Porras
Pedro Porras

Posted on

Cómo configurar un entorno profesional para desarrollo en Python con VS Code

Si estás empezando un nuevo proyecto en Python o quieres profesionalizar tu flujo de trabajo como desarrollador, configurar correctamente tu entorno de desarrollo es clave. En esta guía te muestro cómo preparar Visual Studio Code (VS Code) para trabajar eficientemente con Python, incluyendo herramientas de linting, formateo automático, pruebas y control de versiones.


🚀 ¿Por qué Visual Studio Code?

VS Code es ligero, gratuito, altamente configurable y tiene una comunidad enorme. Con unas pocas extensiones y configuraciones, puedes convertirlo en un entorno potente y robusto para desarrollar en Python.


🧱 Paso 1: Instalaciones base

Asegúrate de tener instalados los siguientes componentes:


🧩 Paso 2: Instala las extensiones clave en VS Code

Desde la vista de extensiones (Ctrl+Shift+X), busca e instala:

  • Python – soporte para ejecución, debugging, refactorización.
  • Pylance – completado inteligente y análisis de tipo.
  • Black Formatter – formateo automático.
  • isort – orden automático de imports.
  • Flake8 o Pylint – linting de código.
  • Jupyter – para trabajar con notebooks.
  • GitLens – integración avanzada con Git.

🔁 Paso 3: Crea y activa un entorno virtual

Desde la terminal integrada de VS Code:

python -m venv venv
source venv/bin/activate    # Linux/Mac
.\venv\Scripts\activate     # Windows
Enter fullscreen mode Exit fullscreen mode

Luego selecciona el intérprete en VS Code:

Ctrl+Shift+P → Python: Select Interpreter → escoge el que esté en ./venv.


⚙️ Paso 4: Configura tu settings.json

Crea la carpeta .vscode/ y dentro, el archivo settings.json con la siguiente configuración:

{
  "python.pythonPath": "venv/bin/python",
  "python.formatting.provider": "black",
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.organizeImports": true
  },
  "python.linting.flake8Enabled": true,
  "python.linting.enabled": true,
  "python.linting.mypyEnabled": true,
  "python.testing.pytestEnabled": true,
  "python.envFile": "${workspaceFolder}/.env"
}
Enter fullscreen mode Exit fullscreen mode

🧹 ¿Qué es el Linting en proyectos Python?

El linting es el proceso de analizar el código fuente para identificar errores de programación, errores de estilo, o construcciones potencialmente problemáticas. Es una herramienta fundamental para mantener un código limpio, legible y profesional.

🔍 Herramientas comunes de linting en Python:

  • Flake8: Verifica errores de sintaxis, estilo y complejidad.
  • Pylint: Proporciona análisis más profundo, sugerencias de refactorización y puntuación de calidad.
  • mypy: Verifica el tipado estático cuando usas anotaciones (type hints).

🧠 ¿Por qué usar linters?

  • Detectas errores antes de ejecutar el código.
  • Mantienes un estilo consistente en equipos de trabajo.
  • Evitas errores sutiles que podrían afectar producción.
  • Se integra fácilmente con CI/CD para validaciones automáticas.

⚙️ Integración en VS Code

Una vez instalado flake8, pylint o mypy, y configurado en el archivo settings.json, VS Code resaltará en tiempo real los errores en tu código.

Ejemplo:

pip install flake8 pylint mypy
Enter fullscreen mode Exit fullscreen mode

Y en .vscode/settings.json:

{
  "python.linting.flake8Enabled": true,
  "python.linting.pylintEnabled": false,
  "python.linting.mypyEnabled": true,
  "python.linting.enabled": true
}
Enter fullscreen mode Exit fullscreen mode

Usa flake8 . o pylint src/ en la terminal para ejecutarlos manualmente.


🧪 Paso 5: Instala las herramientas en el entorno virtual

pip install black isort flake8 mypy pytest
pip freeze > requirements.txt
Enter fullscreen mode Exit fullscreen mode

📁 Paso 6: Estructura profesional del proyecto

mi_proyecto/
│
├── .vscode/
│   └── settings.json
├── venv/
├── src/
│   └── main.py
├── tests/
│   └── test_main.py
├── requirements.txt
├── .env
└── README.md
Enter fullscreen mode Exit fullscreen mode

🧪 Paso 7: Agrega pruebas con Pytest

Ejemplo de test:

# tests/test_main.py
from src.main import suma

def test_suma():
    assert suma(2, 3) == 5
Enter fullscreen mode Exit fullscreen mode

Y ejecuta con:

pytest
Enter fullscreen mode Exit fullscreen mode

🔐 Paso 8: Usa .env para manejar variables sensibles

Ejemplo de archivo .env:

API_KEY=mi-clave-secreta
DEBUG=True
Enter fullscreen mode Exit fullscreen mode

VS Code lo detectará automáticamente.


🔧 Paso 9: Automatiza tareas con Makefile (opcional)

format:
    black src/
    isort src/

lint:
    flake8 src/
    mypy src/

test:
    pytest
Enter fullscreen mode Exit fullscreen mode

Y ejecutas con: make format, make lint, etc.


🔁 Paso 10: Usa Git correctamente

git init
echo "venv/" >> .gitignore
echo "__pycache__/" >> .gitignore
Enter fullscreen mode Exit fullscreen mode

Tambien puedes usar herramientas como gitignore.io y seleccionar las plataformas de desarrollo como Windows, Linux o MAC junto con los lenguajes que estas usando


📦 Bonus: CI/CD con GitHub Actions

# .github/workflows/python.yml
name: Python CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Python
        uses: actions/setup-python@v4
        with:
          python-version: 3.10
      - run: pip install -r requirements.txt
      - run: flake8 .
      - run: pytest
Enter fullscreen mode Exit fullscreen mode

🐞 Bonus: Depuración de aplicaciones Flask en VS Code

Configurar el depurador (debugger) de VS Code para aplicaciones Flask puede ayudarte a identificar errores de forma más rápida y efectiva.

👉 Consulta esta guía completa paso a paso:

Cómo depurar una aplicación Flask en Visual Studio Code

Incluye:

  • Configuración del archivo launch.json
  • Uso de breakpoints
  • Ejecución en modo debug

Ideal para proyectos que requieren pruebas locales en caliente mientras desarrollas tu backend Flask.


🧠 Conclusión

Con esta configuración tendrás un entorno limpio, potente y listo para producción. Integrar buenas prácticas desde el principio mejora tu productividad, evita errores y hace tu código más mantenible.

¿Tienes algún paso que uses tú y quieras recomendar? ¡Te leo en los comentarios!

Top comments (0)