执行pip install -r requirements.txt时cffi-1.15.1.tar.gz安装报错
解决pip安装cffi==1.15.1时的DistutilsPlatformError问题
错误核心
执行pip install -r requirements.txt安装cffi==1.15.1时,会触发以下问题:
- 收集包后准备元数据(setup.py)失败,提示
subprocess-exited-with-error - 执行
python setup.py egg_info退出码1,最终抛出DistutilsPlatformError,要求--plat-name必须是('win32', 'win-amd64', 'win-arm32', 'win-arm64')之一 - 官方说明问题源于包本身,需从平台匹配或编译环境入手排查
解决方法
直接装预编译wheel包,跳过源码编译
这是最直接的解决方式,强制pip使用预编译的二进制包,避免平台参数错误:pip install cffi==1.15.1 --only-binary :all:也可以手动下载对应Windows平台的wheel文件(比如适配你Python版本的
cffi-1.15.1-cp3x-none-win_amd64.whl),然后本地安装:pip install 你下载的wheel文件路径设置Windows平台编译环境变量
手动指定编译环境的平台参数,打开命令提示符执行:set DISTUTILS_USE_SDK=1 set MSSdk=1之后再重新运行
pip install -r requirements.txt升级pip、setuptools和wheel
旧版本的工具可能存在平台检测bug,先更新再尝试安装:pip install --upgrade pip setuptools wheel降级cffi版本(备选方案)
如果上面的方法都不行,试试换个更兼容的cffi版本,比如把requirements.txt里的cffi==1.15.1改成cffi==1.14.6,再重新执行安装命令。
内容的提问来源于stack exchange,提问作者Jesse Zhong
相关产品推荐
相关产品推荐

