跳转到主要内容

uv与tox的集成。

项目描述

tox-uv

PyPI version PyPI Supported Python Versions check Downloads

tox-uv 是一个 tox 插件,它在您的 tox 环境中用 uv 替代 virtualenv 和 pip。请注意,您将获得 uv 的好处(性能)或缺点(错误)。

如何使用

tox-uv 安装到您的 tox 环境中,它将替换所有运行中的 virtualenvpip

uv tool install tox --with tox-uv # use uv to install
tox --version # validate you are using the installed tox
tox r -e py312 # will use uv

提供的tox环境类型

此包将提供以下新的 tox 环境

  • uv-venv-runner 是不使用锁定文件的 tox 环境的 runner 的 ID。
  • uv-venv-lock-runner 是使用 uv.lock 的 tox 环境的 runner 的 ID(注意我们无法检测 uv.lock 文件的存在来启用此功能,因为这会破坏不使用锁定文件的环境 - 例如您的代码检查器)。
  • uv-venv-pep-517 是 PEP-517 打包环境的 ID。
  • uv-venv-cmd-builder 是外部命令构建器的 ID。

uv.lock支持

如果您希望某个 tox 环境使用带 uv.lock 文件的 uv sync,则需要将此 tox 环境的 runner 更改为 uv-venv-lock-runner。此外,在这样的环境中,如果您使用 extras 配置来指示 uv 安装指定的额外包,例如

[testenv:fix]
description = run code formatter and linter (auto-fix)
skip_install = true
deps =
    pre-commit-uv>=4.1.1
commands =
    pre-commit run --all-files --show-diff-on-failure

[testenv:type]
runner = uv-venv-lock-runner
description = run type checker via mypy
commands =
    mypy {posargs:src}

[testenv:dev]
runner = uv-venv-lock-runner
description = dev environment
extras =
    dev
    test
    type
commands =
    uv pip tree

在此示例中

  • fix 将使用 uv-venv-runner 并使用 uv pip install 将依赖项安装到环境中。
  • type 将使用 uv-venv-lock-runner 并使用 uv sync 安装环境中没有任何额外组的依赖项。
  • dev 将使用 uv-venv-lock-runner 并使用 uv sync 安装带有 devtesttype 额外组的依赖项。

注意,当使用 uv-venv-lock-runner 时,所有 依赖项都将来自锁定文件,受 extras 控制。因此,选项如 deps 被忽略(以及所有其他 在此列出 作为 Python 运行标志)。

额外功能

一个字符串列表,用于选择您想要使用 uv sync 安装的额外组。默认情况下为空。

with_dev

一个布尔标志,用于切换安装 uv 的开发依赖项。默认情况下为 false。

外部包支持

如果 tox 用 --installpkg 标志调用(参数 必须是 轮或源分发),则同步操作将使用 --no-install-project 运行,之后将使用 uv pip install 安装提供的包。

环境创建

我们使用 uv venv 创建虚拟环境。此过程可以通过以下选项进行配置

uv_seed

此标志在 tox 环境级别设置,控制创建的虚拟环境是否注入 pipsetuptoolswheel。默认情况下关闭。您需要设置此标志,如果您有一个使用旧遗留可编辑模式的项目的,或者您的项目不支持由 pyproject.toml 驱动的隔离构建模型。

uv_python_preference

此标志在 tox 环境级别设置,控制 uv 如何选择 Python 解释器。

默认情况下,uv 将尝试使用系统上找到的 Python 版本,并且只有在必要时才下载管理解释器。但是,可以通过 python-preference 选项调整 uv 的 Python 版本选择偏好。

包安装

我们使用 uv pip 将软件包安装到虚拟环境中。此行为的配置可以通过以下选项进行

uv_resolution

此标志在 tox 环境级别设置,通知 uv 期望的 解析策略

  • highest - (默认) 选择满足约束的包的最高版本。
  • lowest - 安装所有依赖项的最低兼容版本,包括 直接间接 依赖项。
  • lowest-direct - 为所有 直接 依赖项选择最低兼容版本,同时使用所有 间接 依赖项的最新兼容版本。

这是一个针对 uv 的特定功能,可以作为测试环境中对冻结约束的替代方案,如果目的是在测试执行期间验证依赖项的下限。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

tox_uv-1.13.0.tar.gz (15.6 kB 查看哈希值)

上传时间 源代码

构建分发

tox_uv-1.13.0-py3-none-any.whl (13.4 kB 查看哈希值)

上传时间 Python 3

由支持