我试图从C ++代码中包含NumPy对象。 我是从今天开始的,作为第一个示例程序,我制作了以下存根代码。
#include <Python.h>
#include <numpy/arrayobject.h>
#include <iostream>
static PyObject* SpamError;
int main(void) {
std::cout << "Hello, world!\n";
return (0);
}
我使用以下命令进行构建。我确实在Ubuntu 14.04上构建。
g++ -o out test.cc -I/usr/include/python2.7 -lpython2.7
但是如果我使用上面的构建命令,则会出现以下错误消息。
/usr/include/python2.7/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it by " \
我不清楚这个含义,我想知道如何避免这个问题。有人可以就此提出一些建议吗?
答案 0 :(得分:1)
这是known issue。如果您在那里阅读了该主题,您似乎可以1.升级您的numpy
版本,2。在您这样做之前忽略它,或者3.暂时使用警告中提到的#define
消息:
#define NPY_NO_DEPRECATED_API
#include <Python.h>
#include <numpy/arrayobject.h>
#include <iostream>
当然,升级到不会发生此警告的版本是最佳选择(但并非总是可行)。
答案 1 :(得分:1)
升级到错误所指向的最新库,或者将#define添加到您的代码中
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
#include <Python.h>
#include <numpy/arrayobject.h>
#include <iostream>
static PyObject* SpamError;
int main(void) {
std::cout << "Hello, world!\n";
return (0);
}