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

使用tox与pyproject.toml时,Python包内config.xml无法找到的问题求助

解决tox环境中找不到config.xml文件的问题

问题出在pyproject.toml不会自动包含非Python文件,你需要显式配置构建工具(比如setuptools)将config.xml纳入包的分发内容,这样tox在安装你的包时才会把文件同步到测试环境中。具体操作如下:

1. 在pyproject.toml中配置包数据

假设你的Python包名为regression_model(和你提到的仓库结构一致),在pyproject.toml中添加以下配置:

[tool.setuptools.package-data]
# 指定包名对应的要包含的文件
regression_model = ["config.xml"]

如果需要包含包内所有.xml文件,可以写成:

regression_model = ["*.xml"]

2. 确保构建后端配置正确

确认pyproject.toml的[build-system]部分指定了足够新的setuptools版本(61.0+才支持通过pyproject.toml配置package-data):

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

3. 验证tox安装逻辑

检查你的tox.ini配置,确保测试环境是通过安装你的包而非直接复制文件的方式构建的。比如testenv部分应包含类似配置:

[testenv]
commands = pytest
deps = pytest
install_command = pip install {opts} {packages} .

这样tox会在创建测试环境时,先构建包含config.xml的包,再安装到.tox目录下,你就能在环境的site-packages中找到这个文件了。

4. 本地预验证

可以先在本地执行pip install -e .,然后通过Python代码验证文件是否能被读取:

import pkgutil
data = pkgutil.get_data("regression_model", "config.xml")
print(data)

如果能正常输出文件内容,说明配置生效,tox环境中也会同步这个结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:15:25