python - fatal error : numpy/arrayobject. h:没有那个文件或目录

标签 python c++ numpy g++

我能分享的内容有限,因为这是我从 Ubuntu 14.04 移植到 16.04 的大量代码的一部分。

这应该是微不足道的,但不知何故我正在努力解决这个问题。它没有找到 numpy/arrayobject.h我在我的源文件中引用了 #include <numpy/arrayobject.h>

我会尽可能多地分享,看看是否有人可以指导我解决问题。

Ubuntu

$ lsb_release -a 
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:    16.04
Codename:   xenial

制作

$ make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu

g++

$ g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609

升级为

# g++ --version
g++ (Ubuntu 5.4.1-2ubuntu1~16.04) 5.4.1 20160904
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

python

$ python --version
Python 2.7.12

一些环境变量

PYTHON       /usr/bin/python2.7
ARCH         x86_64
OS           Linux
VERSION      4.4.071generic
PLATFORM     linux2
HOSTNAME     deploy
USER         myUser
WUSS_BUILD   NO
CCVER        gcc
PYLIBDIR     build.x86_64-linux2
LIBDIR       build.x86_64-linux2
BINDIR       build.x86_64-linux2
ODIR         build.x86_64-linux2-gcc
STATICLIBDIR build-static.x86_64-linux2

错误

make命令导致

+++ Compile mycore/boost_numpy.cc to build.x86_64-linux2-gcc
anycore/boost_numpy.cc:2:31: fatal error: numpy/arrayobject.h: No such file or directory

我的源文件

user@deploy:~/my-linux$ vim mycore/boost_numpy.cc

#include "anycore/boost_python_headers.h"
#include <numpy/arrayobject.h>           <====== DECLARATION
#include <numpy/ufuncobject.h>        
#include "mycore/boost_numpy.h"
#include "mycore/numerical.h"
#include "mycore/vec3.h"

using namespace boost::python;

PyObject *
read_numeric_file_ficii(FILE *fp, int ncols, char arrtype, int headlines, int taillines)
{
  if (!(arrtype=='d' || arrtype=='f' || arrtype=='i')) {
    PyErr_SetString(PyExc_ValueError, "Unknown array type for read_numeric_file");
    return NULL;
  }
...FILTERED...

声明文件numpy/arrayobject.h在磁盘上

root@deploy:/home#  find / -name arrayobject.h
/usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h

请告诉我如何改进这个问题。欢迎指点或指点

更新

$ ls -l /usr/include/numpy
ls: cannot access '/usr/include/numpy': No such file or directory

解决

sudo ln -s  /usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy /usr/include/numpy

最佳答案

我在部分损坏的 Debian 安装上遇到过相同的行为。

我通过重新建立符号链接(symbolic link)修复了错误

sudo ln -s/usr/lib/python2.7/dist-packages/numpy/core/include/numpy/usr/include/numpy

关于python - fatal error : numpy/arrayobject. h:没有那个文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44888925/

相关文章:

python - 使用 GroupBy 将新列添加到数据框

python - SelectField WTForm 在模板上渲染

c++ - 从内存加载图像,GDI+

c++ - 如何存储大小位数组,例如大小 % 8 != 0?

python - 为什么 SciPy 在 IPython 和 Python 中的行为截然不同?

python - 包含数字的 python 包名称是否可以接受?

python - 在 Scala 中如何近似 Python 的 or 运算符来进行集合比较?

c++ - 我可以在下面的程序中使用 sem_open 吗,但是我在这里看到了崩溃?

numpy - np.maximum.accumulate 具有 nan 值

python - 如何使用 pandas groupby 函数在 numpy 数组上应用函数