15 puntos por GN⁺ 2025-01-13 | 5 comentarios | Compartir por WhatsApp
  • El rendimiento o la compatibilidad con Python no son lo que diferencia a uv. uv cumple con los PEPs y es recomendable como gestor de paquetes de Python. Pero su función más sorprendente está en otra parte.
  • Al hacer scripting ad-hoc en Python 3.12, a menudo hace falta agregar dependencias como Pandas. La forma habitual es la siguiente:
    • ejecutar pip install pandas para modificar el entorno global, o
    • crear un entorno virtual, ejecutar pip install pandas, activar el entorno virtual y luego ejecutar Python.
  • Si se necesita otra versión de Python, hay que usar pyenv para instalar la versión y configurarla localmente. En el peor de los casos:
    1. pyenv install 3.12
    2. pyenv local 3.12
    3. python -m venv .venv
    4. source .venv/bin/activate
    5. pip install pandas
    6. python
  • Con uv, todo eso se puede hacer con una sola línea de comando:
    • uv run --python 3.12 --with pandas python
    • Es fácil de recordar y no deja rastros. ¡Feliz scripting!

5 comentarios

 
tribela 2025-01-15

Todavía uso poetry, pero ya va siendo hora de irme cambiando poco a poco. Supongo que también será el adiós a virtualenv wrapper.

 
roxie 2025-01-14

Parece que de verdad ya va siendo hora de dejar pip.

 
dongho42 2025-01-14

Salvo que al hacer init trae pegadas un montón de cosas innecesarias cada vez, en todo lo demás estoy satisfecho y lo uso muy bien.

 
GN⁺ 2025-01-13
Opiniones de Hacker News
  • A alguien le gusta mucho el gestor de paquetes uv y le gustaría que se convirtiera en el estándar de la comunidad. En especial, es una herramienta recomendable para usuarios nuevos.

  • uv soporta dependencias inline de scripts de PEP 723, lo que permite un uso más limpio.

  • Como desarrollador de NodeJS, a alguien le sorprende que el problema de configuración de entornos en Python siga sin resolverse. Node tampoco es perfecto, pero no hay preocupación por modificar el entorno global.

  • No es necesario activar virtualenv, y se puede crear un entorno virtual directamente sin configurar el intérprete con pyenv.

  • Hay quien opina que es incómodo que uv agrupe varias funciones en una sola herramienta para ejecutar una única tarea. Activar un venv y poder ejecutar un programa varias veces resulta conveniente.

  • uv incluye el comando uvx, con el que se pueden ejecutar scripts de Python sin instalación manual.

    • Ejemplo: uvx --from 'huggingface_hub[cli]' huggingface-cli
  • A alguien le gusta uv y quiere probarlo pronto, pero dice que no entiende el punto principal del artículo. Con pyenv y poetry también se pueden traer dependencias locales.

  • Si hay otras dependencias binarias, usar Nix y virtualenv + pip-tools podría ser una mejor opción.

  • Hay quien opina que primero se debe activar el entorno virtual en la "ruta correcta" y luego instalar pandas.