安装sexpdata/segno遇_MissingDynamic及KeyError问题求助
问题排查与解决方向
核心原因
这是新版setuptools(68.0.0及以上)的严格校验导致的兼容性问题——旧项目(比如sexpdata 1.0.1)的打包配置同时混用了pyproject.toml和setup.py,且license字段格式不符合新版setuptools的要求,触发了KeyError: 'text'。你的requirements.txt没改,但pip会自动拉取最新版的构建依赖(包括setuptools),所以之前正常现在突然报错。
快速解决办法
锁定setuptools版本:安装前先指定兼容的旧版setuptools,执行:
pip install setuptools<68 pip install -r requirements.txt或者直接在requirements.txt里加一行:
setuptools<68跳过源码编译,直接用预编译包:安装时强制使用wheel包,不用从源码构建,避开配置校验问题:
pip install sexpdata==1.0.1 --only-binary :all: pip install segno==1.5.3 --only-binary :all:
长期排查方向
- 检查环境是否自动升级了setuptools:执行
pip show setuptools查看版本,如果是68+就是问题根源 - 如果是项目依赖的epc间接引入sexpdata,可以考虑升级epc到最新版,看是否已兼容新版setuptools
- 若要修复sexpdata的打包问题,可修改它的
pyproject.toml:要么把license字段改成符合规范的格式,要么在dynamic里声明license和keywords,既能消除警告也能解决KeyError
内容的提问来源于stack exchange,提问作者jma
相关产品推荐
相关产品推荐

