运行Relation-Aware-Global-Attention-Networks时libprotobuf.so.29缺失如何解决
报错原因
ImportError: libprotobuf.so.29: cannot open shared object file 报错本质是当前Python环境的protobuf包和系统/环境内的protobuf动态库版本不匹配,你环境中安装的protobuf版本需要libprotobuf.so.29这个动态库文件,但环境内没有找到对应文件,最终在tensorboardX导入protobuf依赖时触发异常。
解决方案
按优先级从高到低提供三个可落地的方案:
- 方案1:conda安装匹配版本的protobuf(推荐,自动处理依赖)
激活你运行项目所用的conda环境后,执行以下命令:
3.20版本的protobuf官方默认提供conda install libprotobuf=3.20 protobuf=3.20libprotobuf.so.29,conda会自动将动态库安装到对应环境的lib目录,无需额外配置即可生效。 - 方案2:降级tensorboardX适配现有环境
如果你不想修改当前protobuf版本,可降级tensorboardX到对protobuf版本要求更低的版本:pip uninstall -y tensorboardX pip install tensorboardX==2.5 - 方案3:手动配置动态库路径
如果你已经在系统其他路径安装了包含libprotobuf.so.29的protobuf包,可直接将路径添加到动态库搜索路径中:
如需永久生效,可将上述命令追加到# 替换为你实际存放libprotobuf.so.29的目录路径 export LD_LIBRARY_PATH=/你的/库/路径:$LD_LIBRARY_PATH~/.bashrc(bash环境)或~/.zshrc(zsh环境)文件中,执行source ~/.bashrc后即可长期生效。
内容的提问来源于stack exchange,提问作者xin'zhao
相关产品推荐
相关产品推荐

