You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在tox中声明无法在隔离环境下构建的依赖项

问题原因

你当前配置中的[tox]块下的deps是tox自身运行所需的依赖,不会被安装到测试虚拟环境中,同时pip默认开启了构建隔离机制,就算测试环境提前装了构建依赖,默认构建第三方包时也不会读取环境里的依赖,所以madmom构建时找不到所需的cython、numpy才会安装失败。

可行解决方案

以下方案都不需要修改第三方依赖包代码,仅调整tox配置即可实现安装:

方法1:关闭pip构建隔离,复用测试环境依赖

给pip添加--no-build-isolation参数,让pip在构建madmom时直接使用测试环境里已经安装的依赖,配置修改如下:

[tox]
minversion = 3.23.0
envlist = py36

[testenv]
deps =
    numpy
    cython
    madmom==0.16.1
# 自定义安装命令,关闭构建隔离
install_command = pip install --no-build-isolation {opts} {packages}
commands =
    # 替换为你实际使用的测试命令
    pytest

注意:该方法要求你提前把目标包的所有构建依赖都写到testenv的deps列表中,否则会出现构建失败。

方法2:拆分安装步骤,预安装构建依赖

如果不想全局关闭构建隔离,可以利用tox的pre_install配置项,在安装业务依赖前先完成构建依赖的安装,再单独安装目标包,配置如下:

[tox]
minversion = 3.23.0
envlist = py36

[testenv]
# 预安装构建依赖
pre_install =
    pip install numpy cython
deps =
    madmom==0.16.1
commands =
    pytest

内容的提问来源于stack exchange,提问作者xaviersjs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:45:05