python3.6+ubuntu14+caffe
直接编译是可以通过的,但是在编译完pycaffe后import caffe
会出现一些列的protobuf的错误,这主要是python的protobuf和caffe编译的protobuf不统一的原因,python3.6只支持protobuf3.0以上,但是protobuf3.0以上使用caffe编译不过。
最后解决如下:
- python3.6 的protobuf安装版本为3.0.0b2
- ubuntu系统的c++protobuf的版本为2.6.0,可以通过
protoc --version
查询
注意:
ubuntu系统的c++protobuf使用apt-get安装只有2.4.0的,需要从源码安装:protobuf-gihub,下载编码包,自己编译就好。
PS:
-
出现:
libboost_python36.a no such file or directory
, 安装的boost和你使用的python不匹配或者没安装,重新源码安装即可,下载地址:Boost,安装方法:./bootstrap.sh --with-libraries=python --with-toolset=gcc ./b2 cflags='-fPIC' cxxflags='-fPIC' --with-python include="/xxx/xxx/anaconda3/include/python3.6m/" sudo ./b2 install
-
出现:
libprotobuf.so.9 cannot open shared object file no such file or directory
,如上面描述的安装的protobuf的C++和python版本不匹配,下载对于的版本,安装方法如下:./configure make make check sudo make install sudo ldconfig
**注意:**上面2个安装路径都为:/usr/local/lib
,protobu
的路径可修改:./configure --prefix=/xxx/xxx