安装Caffe报错: Cannot load caffe2.python. Error... not

警告

WARNING:root:This caffe2 python run does not have GPU support. Will run in CPU only mode.

出现上面的问题的话, 首先看看是不是没有安装NCCL, 如果没有安装的话, 安装以后应该就能好使

报错

使用下面的指令测试caffe安装是否成功

python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

如果返回Failure , 那么进入python, 并执行相关语句获得更准确的错误信息


$ python          
Python 3.5.4 |Continuum Analytics, Inc.| (default, Aug 14 2017, 13:26:58) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from caffe2.python import core
WARNING:root:This caffe2 python run does not have GPU support. Will run in CPU only mode.
CRITICAL:root:Cannot load caffe2.python. Error: /home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/zerozone/.pyenv/versions/a3py3.5/lib/python3.5/site-packages/caffe2/python/caffe2_pybind11_state.cpython-35m-x86_64-linux-gnu.so)

这里我首先出现了如下错误:
CRITICAL:root:Cannot load caffe2.python. Error: /home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/zerozone/.pyenv/versions/a3py3.5/lib/python3.5/site-packages/caffe2/python/caffe2_pybind11_state.cpython-35m-x86_64-linux-gnu.so)

根据提示, 是位于路径home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/ 中的 libstdc++.so.6 版本中没有GLIBCXX_3.4.20 导致出错, 那么我们就先进入该路径:

$cd home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/
$strings strings ./libstdc++.so.6 | grep 'GLIBCXX'  # 使用该指令可以看到当前拥有的版本号

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

可以看到, 确实缺少了3.4.20 版本, 那么该怎么办?

如果你使用的是Anaconda, 那么就可以看看/home/zerozone/.pyenv/versions/anaconda3-5.0.1/lib 路径下的libstdc++.so.6 版本是否有我们需要的, 如果没有使用的话, 也可以看看/usr/lib/x86_64-linux-gnu//usr/lib/ 路径下的版本号, 总之, 只要有任何一个拥有3.4.20版本, 我们都可以将其拷贝到home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/中, 以替换缺少版本的libstdc++.so.6

$strings /usr/lib/libstdc++.so.6 | grep 'CXXABI'
或者
$strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep 'CXXABI'
或者
$strings /home/zerozone/.pyenv/versions/anaconda3-5.0.1/lib/libstdc++.so.6 | grep 'CXXABI'

# 使用cp指令进行复制, 复制任何一个都可以, 只要包含版本3.4.20
cp  /home/zerozone/.pyenv/versions/anaconda3-5.0.1/lib/libstdc++.so.6  home/zerozone/.pyenv/versions/anaconda3-5.0.1/envs/a3py3.5/bin/../lib/

接下来在继续试试import, 发现报错如下, 该错误和上面的错误是一毛一样的, 所以用同样的办法就可以解决, 只不过库文件的名字和版本号不同而已

CRITICAL:root:Cannot load caffe2.python. Error: /home/zerozone/.pyenv/versions/a3py3.5/lib/python3.5/site-packages/caffe2/python/../../torch/lib/libgomp.so.1: version `GOMP_4.0' not found (required by /home/zerozone/.pyenv/versions/a3py3.5/lib/python3.5/site-packages/caffe2/python/../../torch/lib/libcaffe2.so)

Detectron ops lib not found; make sure that your Caffe2 version includes Detectron module

造成该错误的原因主要是没有找到 libcaffe2_detectron_ops_gpu.so , 有两个选择, 将 libcaffe2_detectron_ops_gpu.so所在的路径添加到PYTTHONPATH中即可解决

export PYTHONPATH=$PYTHONPATH:/home/zerozone/Works/Competition/DF/pytorch/build

你可能感兴趣的:(安装Caffe报错: Cannot load caffe2.python. Error... not)