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

如何在setup.cfg中配置本地Python依赖项

解决方案

首先要明确:setuptools的setup.cfg是面向包分发的静态配置文件,默认不支持直接写本地相对路径作为依赖,你之前直接写../mypkg2的写法不符合PEP 508依赖声明规范,setuptools会将其识别为PyPI包名去检索,自然无法生效。

针对你仅本地使用、不对外发布包的需求,有两种可行方案:

方案1:PEP 508直接路径依赖(硬编码本地路径)

直接在install_requires中使用符合PEP 508规范的本地文件URL声明依赖,修改mypkg1/setup.cfg如下:

[metadata]
name = mypkg1
version = 0.0.1

[options]
packages = find:
python_requires = >= 3.7
install_requires =
    mypkg2 @ file:../mypkg2

安装时直接在mypkg1目录下执行pip install .或者开发模式pip install -e .即可,pip会自动识别相对路径安装本地的mypkg2。

注意:该写法仅适用于本地安装场景,如果你将mypkg1打包对外分发,其他用户安装时会因为找不到对应本地路径报错,正好符合你不对外发布依赖的需求。

方案2:分离依赖声明(更适合多人开发场景)

如果你不想把本地路径硬编码到setup.cfg中,可将公共依赖和本地开发依赖分开:

  1. setup.cfg中仅声明依赖的包名,不写路径:
[metadata]
name = mypkg1
version = 0.0.1

[options]
packages = find:
python_requires = >= 3.7
install_requires =
    mypkg2
  1. 在mypkg1目录下新建requirements.txt,写入本地开发的依赖路径:
# 先安装本地依赖mypkg2
-e ../mypkg2
# 再安装当前mypkg1的开发模式
-e .
  1. 执行pip install -r requirements.txt即可完成两个本地包的依赖安装,后续调整路径只需要修改requirements.txt即可,不需要改动打包配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:36:08