Después de probar UV como gestor de paquetes para Python, ahora lamento haber malgastado tanto de mi vida esperando que se completen instalaciones de pip。Si estás cansado de instalaciones de paquetes lentas y quieres supercargar tu flujo de trabajo de desarrollo Python, es hora de cambiar a UV。
¿Qué es UV y Cómo es Diferente?
UV(pronunciado”you-vee”)es un revolucionario gestor de paquetes y resolvedor de Python escrito en Rust。Está diseñado para ser un reemplazo drop-in para pip, ofreciendo mejoras significativas en velocidad y eficiencia。Aquí está lo que distingue a UV:
-
Instalaciones relámpago:UV puede instalar paquetes hasta 10-100 veces más rápido que pip, gracias a sus capacidades de descarga e instalación paralela。
-
Rendimiento impulsado por Rust:Construido con Rust, UV aprovecha la velocidad del lenguaje y la seguridad de memoria para proporcionar una experiencia de gestión de paquetes robusta y eficiente。
-
Compatibilidad:UV apunta a ser completamente compatible con pip, facilitando su integración en proyectos existentes sin romper tu flujo de trabajo。
-
Resolución de dependencias mejorada:UV usa un resolvedor de última generación que puede manejar árboles de dependencia complejos de manera más eficiente que pip。
-
Gestión de entornos virtual incorporada:UV incluye características para crear y gestionar entornos virtuales, simplificando tu configuración de desarrollo。
Cómo Instalar UV
Comenzar con UV es sencillo。Aquí está cómo puedes instalarlo:
-
Asegúrate de tener Python 3.7 o superior instalado en tu sistema。
-
Abre una terminal y ejecuta el siguiente comando:
pip install uv -
Una vez instalado, puedes comenzar a usar UV reemplazando comandos
pipconuv pip。Por ejemplo:uv pip install requests uv pip install -r requirements.txt -
Para crear un nuevo entorno virtual con UV:
uv venv /path/to/new/venv
Usando UV dentro de Docker
UV puede acelerar significativamente tus builds de Docker reduciendo el tiempo dedicado a instalación de paquetes。Aquí hay un ejemplo de cómo usar UV en un Dockerfile:
FROM ghcr.io/astral-sh/uv:0.4.18 as uv
# Elige tu versión de python aquí
FROM python:3.10.1-slim-buster
# Crea un entorno virtual con uv dentro del contenedor
RUN --mount=from=uv,source=/uv,target=./uv \
./uv venv /opt/venv
# Necesitamos configurar esta variable de entorno para que uv sepa dónde
# está el entorno virtual para instalar paquetes
ENV VIRTUAL_ENV=/opt/venv
# Asegúrate de que el entorno virtual esté en el PATH para que podamos usar los binarios de los paquetes que instalamos, como pip
# sin necesidad de activar explícitamente el entorno virtual
ENV PATH="/opt/venv/bin:$PATH"
# Establece el directorio de trabajo dentro del contenedor
WORKDIR /app
# Copia el archivo de requisitos al contenedor
COPY requirements.txt .
# Instala los paquetes con uv usando --mount=type=cache para cachear los paquetes descargados
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=from=uv,source=/uv,target=./uv \
./uv pip install -r requirements.txt
COPY . .
EXPOSE 8000
# Establece el comando de punto de entrada para ejecutar la aplicación Python
CMD ["python", "your-python-file.py"]