使用twine上传PIP包至Google Artifact Registry时遇KeyError: 'license'错误
解决Twine上传时出现KeyError: 'license'的问题
这个错误不是你的包的license配置问题,是Twine自身的安装或版本bug导致的——Twine启动时读取自身元数据里的license字段失败,和你要上传的Python包无关。
很多用户在使用Twine 4.0.2版本(尤其是在conda环境下)都遇到过这个问题,下面是几种可行的解决方法:
方法1:重新安装Twine及依赖
先彻底卸载Twine和相关的元数据处理包,再重新安装:
pip uninstall -y twine importlib-metadata pip install twine==4.0.2
方法2:升级到更高版本的Twine
这个bug在Twine后续版本中已经被修复,直接安装更高版本即可:
pip install twine==4.1.0 # 或更高稳定版本
方法3:临时手动修复Twine代码
如果暂时无法升级/重装,可以直接修改Twine的初始化文件:
- 找到Twine的安装路径,比如你的环境里是
/miniconda/envs/pip_env/lib/python3.10/site-packages/twine/__init__.py - 打开文件,找到第43行的
__license__ = metadata["license"],替换成:
__license__ = metadata.get("license", "Unknown")
用get方法避免KeyError,即使找不到license字段也能正常启动。
内容的提问来源于stack exchange,提问作者Chinmaya Biswal
相关产品推荐
相关产品推荐

