[Numpy-discussion] Comping Numpy in Cython

Mark Wiebe mwwiebe at gmail.com
Fri Sep 30 19:34:47 EDT 2011

On Tue, Sep 20, 2011 at 8:38 AM, Sean Poust <poust at berkeley.edu> wrote:

> I keep getting this error: #warning "Using deprecated NumPy
> API, disable it by #defining NPY_NO_DEPRECATED_API" and a bunch of
> undefined variables when comping cython code with numpy

This is a warning introduced in current NumPy master. It's just a warning,
so it's not the cause of the errors.

> I am new to cython and numpy and I am having trouble getting a *.pyx
> extension
> to compile with this in the header:
> from __future__ import division
> import numpy as np
> cimport numpy as np
> DTYPE = np.int
> ctypedef np.int_t DTYPE_t
> I complie to C code using:
> cython -a montcarl.pyx
> And it seems to work fine.
> I then attempt to compile using:
> gcc -I /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/
> Python.framework/Versions/2.6/include/python2.6 -I /usr/local/lib/
> python2.7/site-packages/numpy/core/include -shared -pthread -fPIC -
> fwrapv -O2 -fno-strict-aliasing
> -o montcar.so montcarl.c
> And I get a bunch of undefined variables:
> spoust-m:old spoust$ gcc $CFLAGS -o montcar.so montcarl.c
> In file included from /usr/local/lib/python2.7/site-packages/numpy/
> core/include/numpy/ndarraytypes.h:1965,
>                from /usr/local/lib/python2.7/site-packages/numpy/
> core/include/numpy/ndarrayobject.h:17,
>                from /usr/local/lib/python2.7/site-packages/numpy/
> core/include/numpy/arrayobject.h:14,
>                from montcarl.c:225:
> /usr/local/lib/python2.7/site-packages/numpy/core/include/numpy/
> npy_deprecated_api.h:11:2: warning: #warning "Using deprecated NumPy
> API, disable it by #defining NPY_NO_DEPRECATED_API"
> Undefined symbols:
>  "_PyLong_AsLong", referenced from:
>     ___Pyx_PyInt_AsLong in ccvkIDLQ.o
>     ___Pyx_PyInt_AsLong in ccvkIDLQ.o
> ...
> Any ideas on how to get this to compile and how to get rid of these
> numpy undefined variables? The cython guys directed me here.

PyLong_AsLong is a CPython API call:


Looks like it's a problem linking with CPython, nothing to do with NumPy. I
would recommend looking at the Python version numbers of all the parts in
your build command line, I'm pretty sure that's where you will find your
problem. ;)


> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20110930/9cd521fd/attachment.html>

More information about the NumPy-Discussion mailing list