UV - Rust 编写的 Python 包管理器


一、关于 UV

UI 是一个极快的Python包和项目管理器,用Rust编写。


在这里插入图片描述使用 warm cache 安装Trio的依赖项。


亮点

UV 由 Ruff 的创造者 Astral 支持。


二、上手使用

使用我们的官方独立安装程序安装uv:

macOS和Linux

curl -LsSf https://astral.sh/uv/install.sh | sh

然后,查看第一步或继续阅读简要概述。


Windows:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

注意:uv也可以与pip、Homebrew等一起安装。请参阅安装页面上的所有方法。


三、项目管理

uv管理项目依赖和环境,支持lockfile、工作区等,类似于ryepoetry

$ 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!

请参阅项目指南以开始。

uv还支持构建和发布项目,即使它们不是用uv管理的。请参阅发布指南以了解更多信息。


四、工具管理

uv执行并安装Python包提供的命令行工具,类似于pipx

使用uvxuv 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 |
 || ||

使用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

请参阅工具指南以开始使用。


五、Python管理

uv安装Python并允许在版本之间快速切换。

安装多个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

根据需要下载Python版本:

$ uv venv --python 3.12.0
Using CPython 3.12.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

$ uv run --python pypy@3.8 -- python
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.
>>>>

在当前文件夹使用指定 Python 版本:

$ uv python pin 3.11
Pinned `.python-version` to `3.11`

查阅 installing Python guide 来开始。


六、脚本支持

uv管理单文件脚本的依赖项和环境。

创建一个新脚本并添加声明其依赖项的内联元数据:

$ echo 'import requests; print(requests.get("https://astral.sh"))' > example.py

$ uv add --script example.py requests
Updated `example.py`

然后,在隔离的虚拟环境中运行脚本:

$ uv run example.py
Reading inline script metadata from: example.py
Installed 5 packages in 12ms
<Response [200]>

请参阅脚本指南以开始使用。


七、pip接口

uv提供了常用pippip-toolsvirtualenv命令的直接替代品。

UV通过高级功能扩展了它们的接口,例如依赖版本覆盖、platform-independent分辨率、可重现分辨率、替代分辨率策略等。

在不改变现有工作流程的情况下迁移到uv,并使用uv pip界面体验10-100倍的加速。

将需求编译成platform-independent需求文件:

$ uv pip compile docs/requirements.in \
   --universal \
   --output-file docs/requirements.txt
Resolved 43 packages in 12ms

创建虚拟环境:

$ uv venv
Using CPython 3.12.3
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

安装锁定的要求:

$ 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
 ...

请参阅pip接口文档以开始使用。


2025-02-03(一)

### Python 包管理器 uv 的使用方法和特性 #### 特性概述 uv 是一个超快速的 Python 包安装器和解析器,采用 Rust 编写而成[^1]。作为 pippip-tools 和 virtualenv 的高效替代方案,uv 提供了显著的速度优势以及更简洁的工作流程。 #### 安装与配置 为了开始使用 uv,需先完成其安装过程。由于具体安装指南可能随版本更新而有所变化,建议查阅官方文档获取最新指导。通常情况下,可以通过以下命令来安装: ```bash cargo install uv ``` 这一步骤依赖于 Cargo 构建系统及其包管理器,适用于已设置好 Rust 开发环境的情况。 #### 创建并激活虚拟环境 uv 同样扮演着 Python 虚拟环境管理者的角色,由 Astral.sh 推出,成为广受瞩目的新一代包管理解决方案之一[^2]。创建新的虚拟环境十分简便: ```bash uv env create my_project_env source ./my_project_env/bin/activate # Unix 或 macOS 下 # 对于 Windows 用户,则应运行: # .\my_project_env\Scripts\activate.bat ``` 上述指令会初始化名为 `my_project_env` 的隔离开发空间,在其中可以自由地测试不同组合下的库依赖关系而不影响全局解释器状态。 #### 添加依赖项 当项目处于活动环境中时,可通过简单的语法声明所需软件包列表: ```toml # pyproject.toml 文件片段 [tool.poetry.dependencies] python = "^3.9" requests = ">=2.28,<3.0" numpy = "*" pandas = {version="^1.4", markers="platform_system != 'Windows'"} ``` 接着利用如下命令同步指定条件至本地副本: ```bash uv sync ``` 此操作不仅能够处理新增加的内容,还会自动调整现有条目以匹配最新的可用版本号。 #### 执行脚本 得益于对 PEP 723 标准的支持,uv 可直接运行带有内联元数据标签的单一文件形式的应用程序[^4]。例如: ```python #! /usr/bin/env python3 """A simple hello world script.""" print("Hello, World!") ``` 保存以上代码到 `.py` 结尾的纯文本档里之后,仅需调用: ```bash uv run path/to/script.py ``` 就能立即看到预期输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐园

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值