Guia rápida de herramientas modernas en Python

Puedes considerarlo este artículo como unos apuntes rápidos de uv y ruff, dos herramientas modernas para gestionar proyectos y paquetes de Python. Ambas son mucho más potentes de lo que muestro aquí, pero creo que con esto es suficiente para empezar a utilizarlas.

uv

En la herramienta universal para gestionar proyectos y paquetes de Python.

  • Sustituye a pip
  • Crear entornos virtuales.
  • Ejecutar scripts, con o sin dependencias.
  • Crear proyectos.
  • Sube proyectos a PyPI.

Y mucho más.

Instalación

https://docs.astral.sh/uv/#installation

Uso

Ejecutar un script

uv run script.py

Si necesitas una dependencia, como puede ser httpie, puedes incluirla.

uv run script.py --with pandas

Crear un proyecto

uv init miproyecto

Después debe entrar al directorio del proyecto:

cd miproyecto

Y a partir de aquí puede instalar dependencias, crear entornos virtuales, etc.

uv add httpie

Además de ejecutarlos.

uv run http GET wttr.in/Valencia?format=3

Crear un entorno virtual

uv venv mientornovirtual

Y para activarlo:

uv activate mientornovirtual

Ruff

Te indica errores de sintaxis, errores de estilo y problemas de calidad en tu código Python. Además de formatear el código automáticamente.

Instalación

uv tool install ruff@latest

Comandos

uvx ruff check # Comprobar errores de sintaxis, estilo y calidad
uvx ruff check /ruta/del/proyecto # Igual que el anterior pero indicando el directorio del proyecto
uvx ruff check --fix # Comprobar errores y corregirlos automáticamente
uvx ruff check --fix --unsafe-fixes # Comprobar errores y corregirlos automáticamente, incluyendo correcciones inseguras
uvx ruff format # Formatear el código automáticamente
uvx ruff format /ruta/del/proyecto # Igual que el anterior pero indicando el directorio del proyecto

Configuración

Si quieres configurar ruff para que se adapte a tus necesidades, puedes crear un archivo ruff.toml en la raíz de tu proyecto.

El siguiente es un ejemplo habilita todas las comprobaciones y configuraciones recomendadas, además de establecer la versión de Python y el estilo de documentación.

target-version = "py310"

[lint]
select = [
    # pycodestyle
    "E",
    # Pyflakes
    "F",
    # pyupgrade
    "UP",
    # flake8-bugbear
    "B",
    # flake8-simplify
    "SIM",
    # isort
    "I",
]

[lint.pydocstyle]
convention = "google"

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Will you buy me a coffee?

You can use the terminal.

ssh customer@andros.dev -p 5555

Written by Andros Fenollosa

August 11, 2025

2 min of reading

You may also like