致命错误:numpy/arrayobject.h:没有这样的文件或目录
fatal error: numpy/arrayobject.h: No such file or directory
我可以分享的内容有限,因为这是我从 Ubuntu 14.04 移植到 16.04 的大量代码堆栈的一部分。
这应该是微不足道的,但不知何故,我正在为此苦苦挣扎。它找不到我在源文件中引用numpy/arrayobject.h
#include <numpy/arrayobject.h>
我会尽可能多地分享,看看是否有人可以指导我完成解决方案。
乌班图
$ 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 --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 安装上遇到了相同的行为。
我通过重新建立符号链接修复了错误
sudo ln -s /usr/lib/python2.7/dist-packages/numpy/core/include/numpy /usr/include/numpy
你是如何安装 numpy 的?
如果您正确安装python-numpy
,例如通过sudo apt-get install python-numpy
,您将/usr/include/numpy
链接到正确的路径:
$ ls -l /usr/include/numpy
lrwxrwxrwx 1 root root 55 Sep 17 2014 /usr/include/numpy -> ../lib/python2.7/dist-packages/numpy/core/include/numpy
看起来您可以手动构建您的 numpy,然后您可以相应地手动创建软链接。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- 致命错误:numpy/arrayobject.h:没有这样的文件或目录
- C++生成致命错误:找不到'numpy/arrayobject.h'文件
- Matplotlib - 找不到 Numpy 头文件
- 如何在C++头文件和源文件中使用NumPy C-API
- 使用 Python 读取 Middlebury 'flow' 文件 (bytes array & numpy)
- C++:从hdf5文件中读取复数的numpy数组
- SWIG输入文件和矢量与numpy.使用%适用