ImportError:动态模块没有定义模块导出函数(PyInit__caffe)

时间:2015-12-15 17:01:28

标签: python neural-network deep-learning caffe

我用python3安装caffe,但是当我导入caffe时,我遇到了一些错误 回溯(最近一次调用最后一次):

 File "classify.py", line 14, in <module>
    import caffe
  File "/home/hez/caffe-master/python/caffe/__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver
  File "/home/hez/caffe-master/python/caffe/pycaffe.py", line 13, in <module>
    from ._caffe import Net, SGDSolver
ImportError: dynamic module does not define module export function (PyInit__caffe)

但它在python2.7中运行良好。

我已经将/ path / to / caffe / distrubute / python添加到PATH,但是当我创建pycaffe时,它显示了

make: Nothing to be done for `pycaffe'.

我该如何解决这个问题? 非常感谢你。

3 个答案:

答案 0 :(得分:5)

<强>更新
Caffe支持python 3.3+。 请查看安装指南和prerequisites

原创(过时)回答
目前不支持在python 3中使用caffe:

  

Caffe的Python界面适用于Python 2.7。 Python 3或更早版本的Pythons是你自己的冒险。

请参阅caffe's installation tutorial

答案 1 :(得分:2)

现在可以为Python3构建Caffe了,我几乎可以肯定在12月16日问题被提出时是可能的。

为此,您需要使用Python3删除Makefile.config中的注释:

# Uncomment to use Python 3 (default is Python 2)
# Check that boost library name is correct here!!!
PYTHON_LIBRARIES := boost_python3 python3.5m
PYTHON_INCLUDE := /usr/include/python3.5m \
                 /usr/lib/python3.5/dist-packages/numpy/core/include

但是因此你只能在python3或python2中使用caffe,因为caffe的安装方式(使用PYTHON_PATH,确实不是一个好方法)。

要解决此问题,您可以在〜/ .bashrc中执行此操作:

alias python2="export PYTHONPATH=$PYTHONPATH:/home/undead/reps/caffe_py2/python && python2"
alias python3="export PYTHONPATH=$PYTHONPATH:/home/undead/reps/caffe_py3/python && python3"
alias python="export PYTHONPATH=$PYTHONPATH:/home/undead/reps/caffe_py2/python && python2"

因此两者都有效。

答案 2 :(得分:0)

确保您使用的是正确的python版本。

import platform
print(platform.python_version())

我在Python3中遇到了问题,并且在Python2上可以正常工作。