简介
uv 是由 astral-sh 用 Rust 编写的 python 包和项目管理器,能替代 pip、pip-tools、pipx、poetry、pyenv、virtualenv 等。它提供了全面的 Python 项目管理功能,能安装和管理不同版本的 Python,能管理 Python 项目环境,能下载并运行 Python 应用程序,且比 pip 要快 10 倍以上。
快速上手
-
安装并启动 uv:
eval "$(curl https://get.x-cmd.com)" # 安装 x-cmd x env use uv # 使用 x-cmd 安装 uv -
快速搭建 python 项目环境:
uv python install:使用 uv 安装 python。如果你的系统上已经安装了 Python,则无需使用该命令安装 Python,uv 能检测并使用安装的 Python。uv python list:查看可用的或已安装的 Python 版本。uv init:初始化一个新项目。新项目的目录下会生成pyproject.toml、.python-version文件。uv venv:创建虚拟环境。虚拟环境的默认位置为当前目录的.venv;与pip创建虚拟环境相比,uv增加了 CACHEDIR.TAG 文件,以便在未来进行备份或归档操作时,不会将虚拟环境目录中的文件备份或归档。uv add:下载依赖项并添加到项目中。相比于pip install,uv add提供了更高层次的自动化,能自动管理虚拟环境和更新.pyproject.toml文件。uv tree:查看项目的依赖关系树。相比于pip list,uv tree提供了更详细的依赖关系信息,且能以树状结构展示。uv remove:从项目中删除依赖项。相比于pip uninstall,uv remove提供更智能的依赖管理,在卸载指定包后,还会检测并删除未使用的依赖项。
-
管理和运行 python 项目:
uv run:运行 python 项目或脚本。(在不显式激活虚拟环境的情况下)它能让你在项目的虚拟环境中执行任何命令或脚本。uv pip:使用与 pip 兼容的接口管理 Python 包。uv pip提供了更简便、自动化的方式来管理依赖和虚拟环境,而原生的pip虽然更灵活但却需要开发者管理多个步骤。uvx:运行 Python 包提供的命令。它是uv tool run的简写,能调用 Python 包中的实用工具,并且不会影响当前项目环境,类似于pipx。uv export:将项目的锁文件导出为其他格式,如requirements.txt。
功能特点
- 功能全面:提供了与
pip、pip-tools、pipx、poetry、pyenv、virtualenv等类似的命令,能满足大部分 Python 项目管理需求。 - 性能高效:性能比
pip快 10 倍以上。 - 兼容性强:兼容
pip和pip-tools,能与现有的 Python 项目无缝集成。 - 社区活跃:由 astral-sh 维护,社区活跃,有大量的用户和贡献者。
竞品和相关项目
- pip:Python 的官方包管理器,功能全面,但性能较低,且需要开发者手动管理多个步骤。
- rye:全面且现代化的 Python 项目和包管理解决方案,整合了 python 版本管理、自动化依赖管理、python 包管理、自动化虚拟环境管理、项目初始化、python lint 等功能,适合中大型项目或团队使用。
- pip-tools:用于管理 Python 项目依赖的工具集,能帮助开发者生成、更新和锁定项目的依赖版本。
- pipx:专门用于下载和管理 python 应用程序的工具,能下载并运行各种 Python 应用程序,且不会污染系统或项目的环境。
- poetry:主要用于管理 python 项目依赖、打包和发布的工具,旨在简化依赖管理,同时提供一个统一的工作流来创建和分发 Python 包。
- pyenv:用于管理多个 Python 版本的工具。相较于
uv,pyenv最大的不同是以源码编译的方式安装 python。
进一步阅读
- uv GitHub - uv 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 uv 和参与社区贡献。
- uv 官网文档 - uv 的官方文档提供了详细的指南和参考,包括 uv 的基本概念、命令用法。
- uv 选择的 python 版本 - uv 支持下载和安装 CPython 和 PyPy 发行版,其中 CPython 的发行版来源于 indygreg/python-build-standalone。
更多内容请查阅 : pkg/uv
转载请标明原文链接 :www.x-cmd.com/pkg/uv
关注微信官方公众号 : oh my x
获取开源软件和 x-cmd 最新用法