Hatch构建产物输出路径异常问题排查咨询
这种突然的配置行为变更确实挺闹心的,我之前也碰到过类似“明明没改配置却变味了”的问题,给你列几个我当时排查的方向,你可以一步步试:
先确认版本是否是罪魁祸首
有时候工具版本更新会悄悄调整默认行为,先跑这两个命令看看当前环境里的相关版本:hatch --version pip list | grep -E "hatch|build"比如Hatch在部分版本迭代中可能调整了默认构建目录的逻辑,要是你最近刚更过版本,大概率是这个原因。
检查项目pyproject.toml的隐性配置
你说没设tool.build.hatch.directory,但可以看看有没有全局的[tool.build]配置段?比如:[tool.build] directory = "."有些构建后端会继承这个全局配置,直接覆盖Hatch的默认值。另外也确认下pyproject.toml里有没有其他和build相关的陌生配置,比如第三方插件的遗留设置?
排查环境变量的干扰
环境变量经常会偷偷覆盖配置,跑这两个命令看看有没有相关的变量:env | grep -i hatch env | grep -i build比如有没有
HATCH_BUILD_DIRECTORY或者BUILD_DIRECTORY被设成了.?有的话unset掉再试构建。清理项目本地残留配置
虽然你清了全局的Hatch配置,但项目根目录如果有.hatch文件夹,里面可能存着本地的构建缓存或配置,先删了试试:rm -r .hatch hatch clean hatch build用原生build模块交叉验证
试试绕开Hatch,直接用Python官方的build模块构建:pip install build python -m build如果这个命令也把产物输出到当前目录,那问题就不在Hatch身上,而是系统或build模块的全局配置有问题;如果这个正常输出到
dist,那问题就锁定在Hatch的逻辑里了。显式指定目录测试+ verbose日志找线索
先试试手动指定目录能不能正常工作:hatch build --directory dist如果能生成到dist,说明默认配置被某种方式覆盖了;再开verbose模式看构建日志,找配置来源的线索:
hatch build -vv日志里可能会打印类似“Loading build directory from XXX”的信息,能帮你找到是哪里的配置在搞鬼。
要是试了这些还没解决,你可以把verbose日志里的关键片段贴出来,或者补充下pyproject.toml的完整内容,应该能更快定位问题~




