如何在Python包元数据中正确指定Requires-External字段
正确配置Requires-External字段的方法
你使用的requires_external参数语法本身符合规范,字段未写入元数据是工具链兼容性问题,按以下步骤调整即可:
- 升级setuptools到最新版本
低于40.8.0的setuptools对Requires-External字段支持存在缺陷,建议升级到60.0.0以上版本:
pip install -U setuptools
- 使用标准构建工具生成包
旧的python setup.py命令存在兼容性问题,建议用官方build模块构建:
pip install build python -m build
- (可选)改用
setup.cfg声明元数据,避免setup.py的解析异常
在项目根目录新增setup.cfg文件,内容如下:
[metadata] name = mypackage description = blah blah url = https://example.org version = 0.1 requires_external = C libpng (>=1.5) make; sys_platform != "win32" [options] packages = find:
对应可以将setup.py简化为:
from setuptools import setup setup()
调整后重新构建,解压生成的.whl包查看内部的METADATA文件,即可看到Requires-External字段已正确写入。
注:当前主流Python包安装工具(如pip)不会自动处理该字段声明的系统依赖,该字段仅作为元数据供用户或专用自动化工具读取。
内容的提问来源于stack exchange,提问作者platypus
相关产品推荐
相关产品推荐

