Un administrador de proyectos y paquetes de Python extremadamente rápido, escrito en Rust.
Instalación de las dependencias de Trio con un caché cálido.
pip
, pip-tools
, pipx
, poetry
, pyenv
, twine
, virtualenv
y más.pip
.curl
o pip
.uv cuenta con el respaldo de Astral, los creadores de Ruff.
Instale uv con nuestros instaladores independientes:
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows.
powershell -ExecutionPolicy ByPass -c " irm https://astral.sh/uv/install.ps1 | iex "
O, de PyPI:
# With pip.
pip install uv
# Or pipx.
pipx install uv
Si se instala a través del instalador independiente, uv puede actualizarse a la última versión:
uv self update
Consulte la documentación de instalación para obtener detalles y métodos de instalación alternativos.
La documentación de uv está disponible en docs.astral.sh/uv.
Además, la documentación de referencia de la línea de comandos se puede ver con uv help
.
uv gestiona las dependencias y los entornos del proyecto, con soporte para archivos de bloqueo, espacios de trabajo y más, similar a rye
o poetry
:
$ uv init example
Initialized project `example` at `/home/user/example`
$ cd example
$ uv add ruff
Creating virtual environment at: .venv
Resolved 2 packages in 170ms
Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
+ example==0.1.0 (from file:///home/user/example)
+ ruff==0.5.4
$ uv run ruff check
All checks passed!
Consulte la documentación del proyecto para comenzar.
uv también admite proyectos de creación y publicación, incluso si no se administran con uv. Consulte la guía de publicación para obtener más información.
uv ejecuta e instala herramientas de línea de comandos proporcionadas por paquetes de Python, similar a pipx
.
Ejecute una herramienta en un entorno efímero usando uvx
(un alias para uv tool run
):
$ uvx pycowsay ' hello world! '
Resolved 1 package in 167ms
Installed 1 package in 9ms
+ pycowsay==0.0.0.2
"""
------------
< hello world! >
------------
^__^
(oo)_______
(__) )/
||----w |
|| ||
Instale una herramienta con uv tool install
:
$ uv tool install ruff
Resolved 1 package in 6ms
Installed 1 package in 2ms
+ ruff==0.5.4
Installed 1 executable: ruff
$ ruff --version
ruff 0.5.4
Consulte la documentación de las herramientas para comenzar.
uv instala Python y permite cambiar rápidamente entre versiones.
Instale varias versiones de Python:
$ uv python install 3.10 3.11 3.12
Searching for Python versions matching: Python 3.10
Searching for Python versions matching: Python 3.11
Searching for Python versions matching: Python 3.12
Installed 3 versions in 3.42s
+ cpython-3.10.14-macos-aarch64-none
+ cpython-3.11.9-macos-aarch64-none
+ cpython-3.12.4-macos-aarch64-none
Descargue las versiones de Python según sea necesario:
$ uv venv --python 3.12.0
Using Python 3.12.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
$ uv run --python [email protected] -- python --version
Python 3.8.16 (a9dbdca6fc3286b0addd2240f11d97d8e8de187a, Dec 29 2022, 11:45:30)
[PyPy 7.3.11 with GCC Apple LLVM 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>>
Utilice una versión específica de Python en el directorio actual:
$ uv python pin [email protected]
Pinned `.python-version` to `[email protected]`
Consulte la documentación de instalación de Python para comenzar.
uv gestiona dependencias y entornos para scripts de un solo archivo.
Cree un nuevo script y agregue metadatos en línea declarando sus dependencias:
$ echo ' import requests; print(requests.get("https://astral.sh")) ' > example.py
$ uv add --script example.py requests
Updated `example.py`
Luego, ejecute el script en un entorno virtual aislado:
$ uv run example.py
Reading inline script metadata from: example.py
Installed 5 packages in 12ms
Consulte la documentación de los scripts para comenzar.
uv proporciona un reemplazo directo para los comandos comunes pip
, pip-tools
y virtualenv
.
uv amplía sus interfaces con funciones avanzadas, como anulaciones de versiones de dependencia, resoluciones independientes de la plataforma, resoluciones reproducibles, estrategias de resolución alternativas y más.
Migre a uv sin cambiar sus flujos de trabajo existentes y experimente una aceleración de 10 a 100 veces con la interfaz uv pip
.
Compile los requisitos en un archivo de requisitos independiente de la plataforma:
$ uv pip compile docs/requirements.in
--universal
--output-file docs/requirements.txt
Resolved 43 packages in 12ms
Crea un entorno virtual:
$ uv venv
Using Python 3.12.3
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
Instale los requisitos bloqueados:
$ uv pip sync docs/requirements.txt
Resolved 43 packages in 11ms
Installed 43 packages in 208ms
+ babel==2.15.0
+ black==24.4.2
+ certifi==2024.7.4
...
Consulte la documentación de la interfaz pip para comenzar.
Consulte el documento de soporte de la plataforma uv.
Consulte el documento de política de versiones de uv.
Nos apasiona apoyar a contribuyentes de todos los niveles de experiencia y nos encantaría verlo participar en el proyecto. Consulte la guía de contribución para comenzar.
El solucionador de dependencias de uv utiliza PubGrub internamente. Agradecemos a los mantenedores de PubGrub, especialmente a Jacob Finkelman, por su apoyo.
La implementación de Git de uv se basa en Cargo.
Algunas de las optimizaciones de uv están inspiradas en el gran trabajo que hemos visto en pnpm, Orogene y Bun. También aprendimos mucho de Posy de Nathaniel J. Smith y adaptamos su trampolín para que sea compatible con Windows.
uv tiene licencia bajo cualquiera de
a tu elección.
A menos que indique explícitamente lo contrario, cualquier contribución enviada intencionalmente por usted para su inclusión en uv, según se define en la licencia Apache-2.0, tendrá una licencia doble como se indica arriba, sin términos ni condiciones adicionales.