macOS Big Sur系统下使用Poetry安装pandas依赖报错问询
报错根因
- 当前尝试安装的旧版本pandas源码中的内部函数
tolower_ascii未做提前声明,新版本Xcode命令行工具的clang编译器默认开启C99标准校验,将该问题判定为编译错误,无法完成源码编译。 - 该问题仅出现在需要从源码编译pandas的场景:要么指定的pandas版本没有对应macOS Big Sur+Python3.9的预编译wheel包,要么当前环境配置强制要求源码安装。
解决方案(按优先级排序)
- 方案1:升级pandas到兼容版本
将项目中pandas的版本要求升级到1.3.0及以上版本,该版本开始已修复该编译兼容问题,且提供对应Python3.9的预编译wheel包,无需本地编译。如果pandas是项目直接依赖,直接修改pyproject.toml中的pandas版本约束即可;如果pandas是间接依赖,可执行poetry add pandas@^1.3.0显式锁定兼容版本,修改完成后重新执行poetry install --no-root。 - 方案2:临时关闭clang的报错校验(仅适用于必须使用旧版本pandas的场景)
执行安装命令前先注入环境变量跳过该校验规则:export CFLAGS="-Wno-error=implicit-function-declaration" poetry install --no-root - 方案3:降级Xcode命令行工具版本
如果需要长期使用低于1.3.0版本的pandas,可将Xcode命令行工具降级到12.x版本,旧版本clang默认不会将隐式函数声明问题判定为编译错误,可正常完成旧版本pandas的编译安装。
内容的提问来源于stack exchange,提问作者jamesnebeker
相关产品推荐
相关产品推荐

