Um pacote Python e gerenciador de projetos extremamente rápido, escrito em Rust.
Instalando as dependências do Trio com cache quente.
pip
, pip-tools
, pipx
, poetry
, pyenv
, twine
, virtualenv
e muito mais.pip
.curl
ou pip
.uv é apoiado pela Astral, os criadores do Ruff.
Instale o uv com nossos instaladores independentes:
# 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 "
Ou, do PyPI:
# With pip.
pip install uv
# Or pipx.
pipx install uv
Se instalado através do instalador independente, o uv pode ser atualizado para a versão mais recente:
uv self update
Consulte a documentação de instalação para obter detalhes e métodos de instalação alternativos.
A documentação do uv está disponível em docs.astral.sh/uv.
Além disso, a documentação de referência da linha de comando pode ser visualizada com uv help
.
uv gerencia dependências e ambientes de projetos, com suporte para lockfiles, espaços de trabalho e muito mais, semelhante a rye
ou 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 a documentação do projeto para começar.
uv também oferece suporte a projetos de construção e publicação, mesmo que não sejam gerenciados com uv. Consulte o guia de publicação para saber mais.
uv executa e instala ferramentas de linha de comando fornecidas por pacotes Python, semelhantes a pipx
.
Execute uma ferramenta em um ambiente efêmero usando uvx
(um 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 uma ferramenta com 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 a documentação das ferramentas para começar.
uv instala o Python e permite alternar rapidamente entre versões.
Instale várias versões do 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
Baixe as versões do Python conforme necessário:
$ 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.
>>>>
Use uma versão específica do Python no diretório atual:
$ uv python pin [email protected]
Pinned `.python-version` to `[email protected]`
Consulte a documentação de instalação do Python para começar.
uv gerencia dependências e ambientes para scripts de arquivo único.
Crie um novo script e adicione metadados inline declarando suas dependências:
$ echo ' import requests; print(requests.get("https://astral.sh")) ' > example.py
$ uv add --script example.py requests
Updated `example.py`
Em seguida, execute o script em um ambiente virtual isolado:
$ uv run example.py
Reading inline script metadata from: example.py
Installed 5 packages in 12ms
Consulte a documentação dos scripts para começar.
uv fornece um substituto imediato para comandos pip
, pip-tools
e virtualenv
comuns.
uv estende suas interfaces com recursos avançados, como substituições de versão de dependência, resoluções independentes de plataforma, resoluções reproduzíveis, estratégias alternativas de resolução e muito mais.
Migre para uv sem alterar seus fluxos de trabalho existentes — e experimente uma aceleração de 10 a 100x — com a interface uv pip
.
Compile os requisitos em um arquivo de requisitos independente de plataforma:
$ uv pip compile docs/requirements.in
--universal
--output-file docs/requirements.txt
Resolved 43 packages in 12ms
Crie um ambiente virtual:
$ uv venv
Using Python 3.12.3
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
Instale os 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 a documentação da interface pip para começar.
Consulte o documento de suporte da plataforma uv.
Consulte o documento de política de versionamento do uv.
Somos apaixonados por apoiar colaboradores de todos os níveis de experiência e adoraríamos ver você se envolver no projeto. Consulte o guia de contribuição para começar.
O resolvedor de dependências do uv usa o PubGrub nos bastidores. Somos gratos aos mantenedores do PubGrub, especialmente Jacob Finkelman, pelo apoio.
A implementação do Git do uv é baseada no Cargo.
Algumas das otimizações do uv são inspiradas no excelente trabalho que vimos em pnpm, Orogene e Bun. Também aprendemos muito com o Posy de Nathaniel J. Smith e adaptamos seu trampolim para suporte do Windows.
uv é licenciado sob qualquer um dos
a sua opção.
A menos que você declare explicitamente o contrário, qualquer contribuição enviada intencionalmente para inclusão em uv por você, conforme definido na licença Apache-2.0, deverá ser licenciada duplamente conforme acima, sem quaisquer termos ou condições adicionais.