annaconda python 和Ubuntu根目录中Python并存下cannot import _caffe,不能make pycaffe的解决办法。

来源:互联网 发布:sdrsharp linux 编辑:程序博客网 时间:2024/06/05 18:34

问题描述:annaconda python 和Ubuntu根目录中Python并存下cannot import _caffe,不能make pycaffe的解决办法。
本人在Ubuntu14.04上安装caffe,像教程上一样通过cmake进行安装的,没有像make安装一样还进行:
make pycaffe
但是为了能在caffe下使用Python是必须要安装pycaffe。如果你能在终端的Python环境下,import caffe成功,那么恭喜你,你没有遇到我的问题。如果遇到了问题,比如我的:
/********************************
Traceback (most recent call last):
File “”, line 1, in
File “/home/dorioliu/caffe-master/python/caffe/init.py”, line 1, in
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
File “/home/dorioliu/caffe-master/python/caffe/pycaffe.py”, line 13, in
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \
ImportError: No module named _caffe
********************************/
小插曲:如果你遇到以上问题,你或许在网上搜索过类似于No module named _caffe的帖子,这些帖子大多会告诉你Pythonpath存在问题,让你通过export命令行,把Pythonpath环境变量路径放到 ~/.bashrc文件中,但是我处理完后还是不行,依然不能import caffe。

于是我在caffe目录下运行make pycafffe,出现了以下的情况:
/********************************
CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
/usr/bin/ld: cannot find -lboost_python
collect2: error: ld returned 1 exit status
make: * [python/caffe/_caffe.so] Error 1
*******************************/

显然提醒我,我缺少了一个库boost_python,最初我是被error提醒中ld的问题给吸引了,于是到网上找各种解决/usr/bin/ld: cannot find -lxxx的方法,也没能够解决问题。因此最后我不得不怀疑我没有安装库libboost_python,接下来我就去安装了boost_python了。
通过:
sudo apt-get install lboost-python-dev
然后再次到caffe的根目录下进行make pycafffe,然后就make成功了,于是我再次进入终端的Python环境下,运行import caffe
又有新问题出来了:
/*******************************
Traceback (most recent call last):
File “”, line 1, in
File “/home/dorioliu/caffe-master/python/caffe/init.py”, line 1, in
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
File “/home/dorioliu/caffe-master/python/caffe/pycaffe.py”, line 16, in
import caffe.io
File “/home/dorioliu/caffe-master/python/caffe/io.py”, line 8, in
from caffe.proto import caffe_pb2
File “/home/dorioliu/caffe-master/python/caffe/proto/caffe_pb2.py”, line 4, in
from google.protobuf.internal import enum_type_wrapper
ImportError: No module named google.protobuf.internal
*******************************/
于是我开始百度解决ImportError: No module named google.protobuf.internal问题,
下面两个帖子对我帮助不小
第一个帖子[here],的方法由于我网速的问题没有解决,放弃了,不过可能也并不行。
这个帖子[here]的answer中我找到了出现问题的原因:那是因为在我的机器里存在两个Python环境,一个是Linux distribution(pip),另一个是在/home/username/anaconda2/bin/下,所以你可能在Linux distribution(pip)下安装了protobuf,这里也需要安装一下,在/home/username/anaconda2/bin/,运行:
pip install ptotobuf
最后在一次进行make pycaffe 成功了,Python环境下运行import caffe也OK了。

//希望本帖对您有所帮助。

阅读全文
0 0