新的 Python 包管理器
管理 Python 项目、运行脚本和工具、处理依赖项以及安装包——所有这些都可以使用 uv 工具完成。
uv 是一个快速的 Python 包和项目管理器,用 Rust 编写。它可以用来代替 pip、pip-tools、pipx、poetry、pyenv 和 virtualenv 工具。 uv 提供了一个用于管理 Python 项目的完整生态系统,允许您添加依赖项、管理工具、运行脚本等等。简而言之,从安装 Python 到构建 Python 应用程序,uv 使这个过程变得更快、更容易。 uv 的最佳功能之一是它与 pip 工具的兼容性。这意味着您只需在命令前面添加“uv”,之前的所有命令都将立即可用。
在本教程中,我们将学习如何安装 uv 并探索其各种功能。我们将创建一个项目、添加依赖项、运行脚本、使用工具,并了解其 pip 接口。
安装紫外线
您可以在终端中运行以下命令来在 Linux 和 MacOS 中安装 uv。
$ curl -LsSf https://astral.sh/uv/install.sh | sh
对于 Windows,请尝试使用 Winget 工具。
$ winget install --id=astral-sh.uv -e
它非常灵活,您可以使用 pip 界面安装它。
$ pip install uv
安装完成后,在终端中运行“uv”命令检查是否正确安装。
$ uv
项目
我们现在将初始化名为“KDN”的 Python 项目。
$ uv init KDN
将目录更改为项目。
$ cd /datasets/_deepnote_work/KDN
如您所见,该项目拥有所有必需的文件。
$ uv run hello.py
正如我们所看到的,它首先创建了虚拟环境文件夹,然后运行了Python文件。
Creating virtual environment at: .venv
Hello from kdn!
我们将继续安装“pandas”并将其添加为项目的依赖项。
$ uv add 'pandas==2.2.3'
脚本
现在,我们将学习如何使用 uv 更轻松地运行 Python 文件。首先,我们将使用必要的代码创建一个简单的 Web 脚本 Python 文件。
$ echo "import requests; from bs4 import BeautifulSoup; response = requests.get('https://www.kdnuggets.com/author/abidali-awan'); soup = BeautifulSoup(response.content, 'html.parser'); print('Webpage Title:', soup.title.string)" > webscrape.py
然后,我们将依赖项添加到 Web 脚本文件中。
$ uv add --script webscrape.py "requests" "beautifulsoup4"
这些依赖项将作为注释添加到文件中,并且只能由 uv 工具读取。
当您运行Python文件时,它会首先安装Python包,然后运行代码。
$ uv run webscrape.py
输出 :
Installed 7 packages in 18ms
Webpage Title: Abid Ali Awan - KDnuggets
如果您在项目之外工作并且只有几个 Python 文件需要运行,那么这非常有用。
工具
我们可以使用“uv”命令安装和使用 CLI 工具。在我们的例子中,我们正在安装“huggingface_hub”工具,它允许我们从 Hugging Face 存储库中提取和推送文件。
$ uv tool install huggingface_hub
要查看所有已安装的工具,我们可以运行以下命令。
$ uv tool list
我们已经安装了该工具,但如您所见,它有一个不同的名称“huggingface-cli”,用于运行该命令。
huggingface-hub v0.25.1
- huggingface-cli
要使用与包名称不同的名称运行工具,我们将使用“--from”标志并为其提供包名称和工具名称。然后,我们将使用 API 密钥登录 Hugging Face Hub。
$ uv tool run --from huggingface-hub huggingface-cli login --token $HUGGINGFACEHUB_API_TOKEN
该工具有效。
Your token has been saved to /root/.cache/huggingface/token
Login successful
点子接口
uv 与 pip 工具完全兼容,这意味着我们可以使用 uv 工具运行所有 pip 命令。您所要做的就是在脚本开头添加“uv”。
我们将使用 pip 接口安装“controlflow”包。
$ uv pip install controlflow -q
然后,我们将使用“show”命令查看其描述。
$ uv pip show controlflow
Name: controlflow
Version: 0.10.0
Location: /root/venv/lib/python3.9/site-packages
Requires: jinja2, langchain-anthropic, langchain-core, langchain-openai, markdownify, openai, prefect, pydantic-settings, textual, tiktoken, typer
Required-by:
最后,我们将使用 freeze 命令创建“requirements.txt”。
$ uv pip freeze >> requirements.txt
最后的想法
uv 适合初学者、组合项目和生产就绪项目。它变得越来越流行,许多编排工具用 uv 取代了 pip,并鼓励用户改用这个卓越的工具。
在我看来,在处理具有数百个依赖项的大型项目时,uv 比 pip 更好。不过,对于小型项目,我相信pip工具在速度和效率上还是更胜一筹。
在本教程中,我们了解了新的 Python 项目管理工具。我们还通过项目、脚本、工具和 Pip 界面等代码示例探索了它的功能。