uv与tox的集成。
项目描述
tox-uv
tox-uv 是一个 tox
插件,它在您的 tox
环境中用 uv
替代 virtualenv
和 pip。请注意,您将获得 uv
的好处(性能)或缺点(错误)。
如何使用
将 tox-uv
安装到您的 tox 环境中,它将替换所有运行中的 virtualenv
和 pip
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
安装带有dev
、test
和type
额外组的依赖项。
注意,当使用 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 环境级别设置,控制创建的虚拟环境是否注入 pip
、setuptools
和 wheel
。默认情况下关闭。您需要设置此标志,如果您有一个使用旧遗留可编辑模式的项目的,或者您的项目不支持由 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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fb087b8b4ff779c72b48fc72ea1995387bb1c0dfb37910c20e46cef8b5f98c15 |
|
MD5 | 1ebd11fed5cb08e24344baeb0be11739 |
|
BLAKE2b-256 | 3123752b7bc25013d2958df6adac2bce983b0984930444f2f23926cc325e2848 |
tox_uv-1.13.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1037e4abad15a3b708b5970ed7a17a0765d7249b641a92b155bc3343b8b0145b |
|
MD5 | 8e161f6b6be88a67a75450415b58c22b |
|
BLAKE2b-256 | 40931b0b0c27177f4816594683cd4e008e07137756f5b8ba55483c30789bf08c |