[PyCaffe]FatalError:numpy/arrayobject.h:No such file和ImportError:can't import name multiarray


环境

  • 系统:Ubuntu 14.04.1
  • Python版本:2.7、3.4

问题1

在对Caffe编译过程中,一路顺利,显卡驱动、cuDNN等安装配置过程就不赘述了。
在进展到 编译Pycaffe 时,

 命令 sudo make pycaffe -j4 出现错误如下:
 python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory

numpy没安装?怎么可能

在shell下命令:pip install numpy
    返回:Requirement already satisfied: numpy in /usr/local/lib/python3.4/dist-packages/numpy…

心想不对啊,这不是已经安装了为什么提示不存在,然后又去caffe源码根目录下的Makefile.config找PYTHON_INCLUDE。

PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/local/lib/python2.7/dist-packages/numpy/core/include

这里也包括了INCLUDE目录,那么问题在哪呢。
直到用命令查看pip版本才把我打醒,发现问题所在。

pip–version
pip 9.0.1 from /usr/local/lib/python3.4/dist-packages (python 3.4)
numpy库是Python3.4,然而我在Caffe的Makefile包含目录里是Python2.7。

解决方案1

修改python软链接到Python2.7:
ln -s /usr/bin/python2.7 /usr/bin/python

下载pip: 
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz

解压pip:
tar -zxvf pip-9.0.1.tar.gz

安装pip到Python2.7:
cd pip-9.0.1
sudo python setup.py install

问题2

修改完问题1,重新执行make pycaffe -j4,又出现新的错误:

 File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 6, in <module>
    from . import multiarray
 ImportError:cannot import name multiarray

还是numpy库里的问题,提示multiarray包不能导入。然后单独在python命令行中导入也不行。

$ python
Python 2.7.6 (default, Nov 23 2017, 15:49:48) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy (报错)

解决方案2

大概是刚刚把两个版本的python、pip还有啥库的整乱了。所以又把/usr/local/lib/python2.7/dist-packages/numpy目录清干净了,又重新用pip安装一遍numpy就好了。

$ cd /usr/local/lib/python2.7/dist-packages/
$ mkdir numpy_bak
$ sudo mv /usr/local/lib/python2.7/dist-packages/numpy* /usr/local/lib/python2.7/dist-packages/numpy_bak
$ pip install numpy
然后单独用python导入numpy正常,编译也能通过

参考

[1] Ubuntu下python3.5报错cannot import name ‘multiarray’
[2] http://d.hatena.ne.jp/aremokoremo/20140507/1399475248

你可能感兴趣的:(Deep,Learning)