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

如何在Hatch中配置非硬编码路径的本地项目依赖?

实现Hatch项目B依赖本地项目A的可行方案

方案1:约定固定相对目录结构

如果要求开发者把A和B放在同一父目录下(比如X/A和X/B),可以直接在B的pyproject.toml里使用相对路径的file依赖,Hatch支持这种写法:

[project]
dependencies = [
    "A @ file://../A"
]

只要保持A和B的相对目录结构不变,不管开发者把父目录X克隆到什么位置,B都能自动识别并依赖本地的A项目,全程无需修改配置文件。

方案2:使用版本控制忽略的辅助配置文件

利用Hatch支持的环境变量扩展,结合被版本控制忽略的辅助文件来动态指定A的路径:

  1. 在B的pyproject.toml里预留环境变量占位:
[project]
dependencies = [
    "A @ file://${PROJECT_A_PATH}"
]
  1. 创建一个.env文件(将其加入.gitignore等版本控制忽略列表),让开发者在文件中填写A的绝对路径:
PROJECT_A_PATH=/实际路径/to/project/A

Hatch会自动加载.env文件中的环境变量,这样既不用改动pyproject.toml,也能让开发者灵活设置A的位置。

方案3:初始化脚本提示输入路径

在B项目中添加一个本地初始化脚本(比如setup-local-dev.py,同样加入版本控制忽略列表),脚本运行时提示开发者输入A的路径,自动生成上述.env文件:

import os

project_a_path = input("请输入项目A的绝对路径:").strip()
with open(".env", "w") as f:
    f.write(f"PROJECT_A_PATH={project_a_path}\n")

print("本地开发配置已生成,可正常安装依赖")

开发者只需运行一次脚本,后续无需修改任何配置文件即可让B依赖本地A。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:02:03