Python导入sagemaker包失败,出现protobuf相关符号缺失错误
Python导入sagemaker包失败,出现protobuf相关符号缺失错误
我太懂这种突然踩坑的烦躁了——几个月没碰的代码突然报依赖错,连重装环境都搞不定,真的让人头大😮💨
从你给出的错误日志和包版本来看,问题确实出在protobuf 3.20.3上,这个版本在M1/M2这类ARM架构的Mac上存在C扩展编译适配问题,才会出现符号缺失的报错。结合你用的是miniforge的conda环境,给你几个具体的解决步骤:
先彻底清理现有环境里的protobuf:
激活你的imputation环境后,执行:pip uninstall -y protobuf如果你的系统上还有通过brew安装的protobuf(可能会干扰conda环境),也可以先卸载:
brew uninstall protobuf安装适配ARM架构的protobuf兼容版本,推荐3.21.x系列,比如:
pip install protobuf==3.21.12这个版本修复了ARM平台上的符号缺失问题,能更好地适配M1芯片。
最后重新安装sagemaker,确保它依赖的是刚安装的兼容版protobuf:
pip install --force-reinstall sagemaker或者你也可以一步到位,安装sagemaker时直接指定protobuf版本:
pip install sagemaker protobuf==3.21.12
完成这些步骤后,再尝试导入sagemaker,应该就能解决这个符号缺失的问题了。本质上就是旧版本的protobuf没有针对ARM架构正确编译C扩展,导致动态链接时找不到对应的符号。
备注:内容来源于stack exchange,提问作者haugstve
相关产品推荐
相关产品推荐

