首页 > 解决方案 > Caffe没有在python中导入

问题描述

Ubuntu 18.04

蟒蛇 2.7

我的问题是我无法在 python 中导入 caffe 模块,即使我已经安装了它。我相信这是一个路径/环境变量问题。

rivaldo4t@Rivaldo-OS3:~$ python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named caffe

正如从这里提到的,我运行了sudo apt install caffe-cpu安装预编译 Caffe 的命令,它成功了。当我在终端输入 caffe 时,我得到类似

rivaldo4t@Rivaldo-OS3:~$ caffe
caffe: command line brew
usage: caffe <command> <args>

commands:
  train           train or finetune a model
  test            score a model
  device_query    show GPU diagnostic information
  time            benchmark model execution time

这意味着 caffe 安装正确。如前所述我尝试将PYTHONPATH变量设置为 Caffe 安装目录的位置。所以我做了这个,

rivaldo4t@Rivaldo-OS3:~$ which caffe
/usr/bin/caffe

当我尝试运行 echo $PYTHONPATH 时,它显示为空(我仍然不知道为什么)。然后我尝试使用更新路径

caffe_root = '/usr/bin/caffe/python'
import sys
sys.path.insert(0, caffe_root)

所以现在我在打印 sys.path 时得到了这个 -

rivaldo4t@Rivaldo-OS3:~$ python -c 'import sys; print(sys.path)'
['', '/home/rivaldo4t', '/usr/bin/caffe/python', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/rivaldo4t/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']

但我仍然无法在 python 中导入 caffe。我注意到的另一件事是 /usr/bin/caffe 不是目录,如果不在这里,我无法理解 caffe 安装在哪里。

任何帮助表示赞赏。谢谢

标签: pythonimportmoduleinstallationcaffe

解决方案


当你在 ubuntu 上使用 安装 caffe 时sudo apt install caffe-cpu,它​​只编译 python 3 的绑定 ( _caffe.cpython-36m-x86_64-linux-gnu.so),它位于/usr/lib/python3/dist-packages/caffe/. 所以简短的回答是改用python 3。

长答案是使用 python 2 绑定从源代码编译 caffe。


推荐阅读