tox-conda:用于测试的多个 Python 解释器

问题描述 投票:0回答:1

整个下午我一直在阅读和重读toxtox-conda的文档,很多blogStack Overflowposts,但我仍然不知道如何制作tox使用 Conda 针对多个 Python 解释器版本测试我的 Python 包。

我是一名地球科学家;我使用 Miniforge 来管理我的 Python 环境,因为它可以很好地处理非 Python 依赖项(以及 R 项目)。因此,我首先创建一个虚拟环境来包含 tox/tox-conda 设置:

mamba create -n sandbox python=3.10 tox-conda
mamba activate sandbox

然后我创建 Conda 环境以授予对 Python 3.10 和 3.11 的毒害访问权限:

mamba create -n py311 python=3.11
mamba create -n py310 python=3.10

然后我尝试通过使用以下 tox.ini 文件在我的 Python 包目录中运行 tox 来针对 3.10 和 3.11 测试我的包:

[tox]
requires = tox-conda
envlist = py310, py311
isolated_build = True

[testenv]
deps = pytest
commands =
         pytest

它就像 3.10 的魅力一样。我想,因为我的 tox 基础环境使用 3.10。 tox 找不到 3.11 的解释器,而且我不知道要在 tox.ini 中放入什么内容来将其指向那里。我得到的错误是

ERROR: cowardly refusing to delete `envdir` (it does not look like a virtualenv): /home/timh/Code/pgongrid_sandbox/.tox/py311

我尝试将

[testenv:py310]
[testenv:py311]
部分添加到 tox.ini,使用解释器的绝对路径(例如
$HOME/mambaforge/envs/py311/bin/python3
)或在
deps
conda-deps 中指定 python=3.10 或 python=3.11 
设置,但我没有设法将 tox 远离我运行 tox 的 Conda 环境中可用的 Python。

网络上是否有一个示例 tox.ini 可以执行此操作? tox-conda 使用文档中的所有设置似乎都不符合要求。

这是在 Ubuntu 20.04 (Focal Fossa)、tox 3.28.0、tox-conda 0.10.2、mamba 1.5.2 和 Conda 23.9.0 上。

python conda tox
1个回答
2
投票

使用 tox.ini 文件中的 conda-deps 设置。此设置允许您指定应安装在 Tox 环境中的 conda 软件包列表。您可以使用它来安装要用于测试的 Python 解释器。 例如,以下 tox.ini 文件将创建两个 Tox 环境,一种用于 Python 3.10,另一种用于 Python 3.11。每个环境的 Python 解释器将从 Conda 安装。

[tox]
requires = tox-conda
envlist = py310, py311

[testenv]
conda-deps =
    python=3.10
    pytest

[testenv:py311]
conda-deps =
    python=3.11
    pytest
© www.soinside.com 2019 - 2024. All rights reserved.