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

pip show不显示包Requires、License字段的配置问题排查

问题根因说明

两个字段显示异常都是配置位置/参数名写错导致的:

  1. 依赖项(Requires)为空的原因

    • 你在setup.py里写的requires=["requests"]是无效参数:setuptools 识别运行时依赖的合法参数是install_requires,requires是早年distutils遗留的废弃参数,不会被写入包元数据,pip自然读取不到。
    • 你在pyproject.toml里把requests>=2.27.1写在了[build-system]段的requires列表里,这个列表仅声明构建打包环节需要的依赖,不会被识别为用户安装包时需要拉取的运行时依赖,所以也不会出现在pip show的结果里。
      你后续在setup()调用中添加install_requires参数后依赖正常显示,正好验证了这个问题。
  2. License字段为空的原因
    你把license = "MIT"同样错写在了pyproject.toml的[build-system]段下,这个段仅用于配置构建后端相关参数,根本不会读取包元数据字段,所以pip无法获取到许可证信息。


正确配置方案

你可以二选一配置,推荐优先用标准PEP 621格式的pyproject.toml配置,减少多文件配置不一致的问题:

  • 方案1:继续用setup.py配置
    直接在setuptools.setup()的调用参数中补充license="MIT"即可,和你之前添加install_requires的方式一致。
  • 方案2:用pyproject.toml标准配置(推荐)
    把所有包元数据挪到[project]标准段下(该格式遵循PEP 621标准,需要setuptools>=61.0版本支持),[build-system]仅保留构建相关配置,示例:
    [build-system]
    requires = ["setuptools>=61.0"]
    build-backend = "setuptools.build_meta"
    
    [project]
    name = "Classeviva.py"
    version = "0.1.1.post1"
    license = "MIT"
    dependencies = [
      "requests>=2.27.1"
    ]
    # 其余元数据比如作者、项目简介、仓库地址也可以统一写在这个段下
    

配置完成后重新打包安装,再执行pip show就能看到License字段正常显示MIT了。


内容的提问来源于stack exchange,提问作者FLAK-ZOSO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:39:22