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

基于pyproject.toml的项目如何自动安装本地子模块依赖?

解决Setuptools项目自动安装Git子模块依赖的问题

直接通过pyproject.toml配置实现需求

不需要环境变量,直接使用相对路径配置本地依赖即可。在项目根目录的pyproject.toml中,找到[project]下的dependencies字段,添加以下内容:

[project]
# 其他配置...
dependencies = [
    # 你的其他依赖
    "dependency_lib @ ./dependency_lib"
]

如果希望dependency_lib也以可编辑模式安装(修改子模块代码时无需重新安装),可以改成:

"dependency_lib @ -e ./dependency_lib"

注意事项

  • 确保Git子模块已初始化:执行git submodule update --init --recursive拉取完整的dependency_lib代码,否则pip找不到该目录。
  • 执行pip install .或pip install -e .时,必须在项目根目录(project_root)下运行,相对路径才会生效。

更优的项目结构方案

如果长期维护这个依赖关系,可考虑以下调整让依赖管理更清晰:

  • 命名空间子包方案:若两个包属于同一命名空间(比如myproject.dependency_lib和myproject.package_name),修改dependency_lib的pyproject.toml,将name设置为带命名空间的格式,然后在主项目的[tool.setuptools.packages.find]中开启namespace_packages支持,Setuptools会自动识别并安装子包。此方案适合你有权限修改dependency_lib配置的场景。
  • requirements辅助管理:若pyproject.toml配置不够灵活,可在项目根目录创建requirements-dev.txt,添加-e ./dependency_lib,安装时执行pip install -r requirements-dev.txt -e .,但这种方式不如直接在pyproject.toml中配置统一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:51:05