Caffe没有在python中导入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Caffe没有在python中导入相关的知识,希望对你有一定的参考价值。

Ubuntu 18.04

Python 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

正如here所提到的那样,我运行命令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。正如提到的here,我试图将我的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的安装位置。

任何帮助表示赞赏。谢谢

答案

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

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

以上是关于Caffe没有在python中导入的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中导入名称中带有空格的文件?

Python:如何禁止从模块中导入类?

有没有办法使用 SWIG C++ 创建一个 python 模块,可以在 Python2 和 Python3 中导入

在 vs 代码中导入的 python 模块中设置断点

在 vs 代码中的 python 中导入 cv2 不起作用

在 AWS Nitro Enclave 中导入 openCV 时 Python 代码挂起