conda环境下 -bash: /mnt/usr/local/anaconda3/envs/TFgpu1.13.1-py2.7/bin/protoc: 无法执行二进制文件

问题场景:

conda环境(TF1.13.1-py2.7)
Linux centos7
深度学习中的目标检测


问题描述

在 conda 环境下 安装 protoc
从官网上下载压缩包 protoc-3.3.0-osx-x86_64.zip
-bash: /mnt/usr/local/anaconda3/envs/TFgpu1.13.1-py2.7/bin/protoc: 无法执行二进制文件

原因分析:

参考博客:
https://blog.csdn.net/diligent_lee/article/details/123616247
https://blog.csdn.net/sizaif/article/details/115793686
https://www.cnblogs.com/walnuttree/p/11661190.html
https://blog.csdn.net/yzhang6_10/article/details/81482852
猜测是probuf版本不对应的问题


解决方案:

首先卸载了原本的protocbuf 3.15.X

protobuf的各个对应版本
python:2.7
tensorflow:1.13.1
tensorboard: 1.14.0
tensorboardX: 1.4
protobuf: 3.6.1

官网下载安装protobuf 3.6.1
http://github.com/protocolbuffers/protobuf/releases

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz

解压 protobuf-all-3.6.1.tar.gz
(注意一定要是all所有,单独的centos系统的protoc-3.3.0-osx-x86_64.zip安装包可能无法下载)
cd protobuf-3.6.1进入到该目录下执行以下命令:(在root用户下)

./autogen.sh

在这里插入图片描述

./configure

在这里插入图片描述

make # 要编译很久
make check #也要编译很久
make install

通过which protoc 查看protoc的位置
它生成的protoc文件在系统文件目录下 我们的是:/usr/local/bin/protoc
如在conda环境下 则将该protoc文件移至(或复制) /mnt/usr/local/anaconda3/envs/TFgpu1.13.1-py2.7/bin/ 目录下

protoc --version

(若出现 libprotoc 3.6.1)则下载成功


版权声明:本文为hu_yinghui原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。