我受到限制,无法分享太多信息,因为我正在从Ubuntu 14.04移植到16.04的大量代码堆栈中工作。这似乎应该很简单,但是我仍然在努力解决问题。我的源文件中引用了
制作
磁盘上的声明文件
#include <numpy/arrayobject.h>
,但它找不到我所需的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
Some environment variables
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