摘要:uv 是一款由 Astral 团队开发的高性能 Python 包和项目管理工具,基于 Rust 编写,旨在替代传统的 pip、pip-tools、poetry、virtualenv 等工具。它的设计目标是提供更快的依赖解析和安装速度,同时保持与现有工具的兼容性
uv 是一款由 Astral 团队开发的高性能 Python 包和项目管理工具,基于 Rust 编写,旨在替代传统的 pip、pip-tools、poetry、virtualenv 等工具。它的设计目标是提供更快的依赖解析和安装速度,同时保持与现有工具的兼容性。
包管理:支持安装、更新、卸载 Python 包。 #技术分享虚拟环境管理:创建和管理项目级虚拟环境,避免依赖冲突。Python 版本管理:安装和切换不同版本的 Python。项目依赖锁定:生成 uv.lock 文件,确保依赖的一致性。工具安装:支持安装和运行 Python 工具。在终端中输入以下命令来配置 uv 工具使用 nexus3代理:
uv config set index-url http://:8082/repository/pypi-tuna/simpleuv config set trusted-host :8082其中是运行 nexus3服务的服务器的 IP 地址。
使用 uv 工具安装一个 Python 包来测试配置是否成功:
uv add 和 uv pip install 是 uv 工具中两个不同的命令,它们在功能和用途上有一些区别。以下是它们的主要区别:
用途:uv add:用于将依赖添加到项目的 pyproject.toml 文件中,并自动锁定依赖版本到 uv.lock 文件中。适用于项目依赖管理,确保项目中所有开发者和环境使用相同的依赖版本。通常用于开发环境中,管理项目的依赖。uv pip install:用于安装包,但不会修改 pyproject.toml 或 uv.lock 文件。适用于临时安装包或工具,这些包可能不会成为项目的一部分。通常用于运行时环境或者临时需求。依赖管理方式uv add:自动解析依赖并锁定版本到 uv.lock 文件中。确保项目依赖的一致性,避免版本冲突。依赖会添加到 pyproject.toml 的 [tool.uv.dependencies] 部分。uv pip install:不会修改 pyproject.toml 或 uv.lock 文件。安装的包不会被锁定,可能会随时间变化。依赖不会被记录在项目的配置中。环境隔离uv add:通常在项目虚拟环境中安装依赖。确保依赖不会污染全局环境。uv pip install:默认安装到当前环境(可能是全局环境或虚拟环境)。如果没有激活虚拟环境,可能会安装到全局环境中。项目一致性uv add:确保所有开发者和部署环境使用相同的依赖版本。通过 uv.lock 文件实现依赖锁定。uv pip install:不保证依赖的一致性。依赖版本可能会随时间变化。安装过程uv add:自动解析依赖并安装到项目虚拟环境中。会更新 pyproject.toml 和 uv.lock 文件。可以通过 uv install 重新安装所有项目依赖。uv pip install:调用 pip 安装包。不会自动解析或锁定依赖。需要手动管理依赖。命令参数uv add:支持 --dev 用于添加开发依赖。支持 --index-url 指定索引URL。支持 --editable 用于安装可编辑模式的包。uv pip install:支持 pip 的所有参数,如 --user、--target 等。更灵活,但需要手动管理依赖。适用场景uv add:适用于项目依赖管理。适用于需要确保依赖一致性的场景。uv pip install:适用于临时安装工具或包。适用于不需要记录在项目配置中的包。使用 uv add
uv add requests将 requests 添加到 pyproject.toml 的 [tool.uv.dependencies] 部分。自动解析并锁定版本到 uv.lock 文件中。安装到项目虚拟环境中。使用 uv pip install
uv pip install --user requests调用 pip 安装 requests 到用户目录。不会修改 pyproject.toml 或 uv.lock 文件。不会记录在项目依赖中。uv add 用于添加依赖并更新配置文件。uv install 用于安装已定义的依赖,确保一致性。它们是相互配合的,uv add 是 uv install 的前置步骤,用于管理依赖的添加和锁定,而 uv install 则负责安装这些依赖。
来源:墨码行者