All of these are expected, I don't see any issues here (except perhaps lack of 
documentation; feel free to submit improvements).

1) You should set the INCLUDE environment variable prior to running runtests.py.

2) cimport and import are different things; you need both.

3) The "dimensions" field is in Cython renamed "shape" to be closer to the 
Python interface. This is done in Cython/Includes/numpy.pxd

Dag Sverre Seljebotn
-----Original Message-----
From: Zachary Pincus <[email protected]>
Date: Sunday, Mar 1, 2009 9:35 pm
Subject: [Cython] cython / numpy / mac(?) issue
To: [email protected]: [email protected]

Hello all,
>
>I've run into a problem using some cython+numpy code that some folks  
>recently made available. After some back and forth with the original  
>authors, we've determined that the problem appears to be with cython  
>on my box. I've attached the offending code and will post a test-case  
>below, but first some configuration details:
>
>I'm using OS X 10.5.6 and a python 2.5.2 that's installed as a  
>"framework" (the standard OS X way of installing Python) -- the only  
>major difference is that the python directories live in /Library/ 
>Frameworks/[etc.] instead of /usr/local.
>
>First, I should note that on my system, using both the latest stable  
>Cython release as well as the tip of cython-devel from hg, cython's  
>numpy tests fail utterly, due to some sort of error with include paths: hg 
>clone http://hg.cython.org/cython-devel/
>cd cython-devel
>make local
>make test
>[...output...]
>compiling (c) and running numpy_test ... numpy_test.c: 
>129:31:numpy_test.c:129:31:  error: error: numpy/arrayobject.h: No  
>such file or directorynumpy/arrayobject.h: No such file or directory
>
>The error using cython 0.10.3 is pretty much the same, except with the  
>spacing errors fixed:
>compiling (c) and running numpy_test ... numpy_test.c:112:31: error:  
>numpy/arrayobject.h: No such file or directory
>
>Also, I should point out that the default OS X filesystem is case- 
>insensitive, so using a directory named 'BUILD' for building the tests  
>is not a great idea, as it is the same as the python 'build'  
>directory, so the latter gets nuked by the 'rm -rf BUILD' in 'make  
>test'.
>
>Anyhow, if I install cython despite these issues, I can build numpy- 
>using projects fine... for some reason, the right include directories  
>get pulled in. However, thereafter I have further issues.
>
>I've attached the troublesome code; it's pretty simple but I don't  
>really know enough cython yet to pull it into a minimal test case. (I  
>suspect from the nature of the errors that this should be easy.)
>
>Anyhow, here's the test case and error:
>cd stefanv-bilateral
>python setup.py build_ext -i
>python
>
>Python 2.5.2 (r252:60911, Feb 22 2008, 07:57:53)
>[GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin
>Type "help", "copyright", "credits" or "license" for more information.
> >>> import numpy
> >>> print numpy.version.version
>1.3.0.dev6359
> >>> import Cython.Compiler.Version
> >>> print Cython.Compiler.Version.version
>0.11.beta
> >>> import bilateral
> >>> bilateral.bilateral(numpy.zeros((4,4)), 4, 4)
>Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "bilateral/bilateral.py", line 38, in bilateral
>    filter_fcn = _BB.Bilat_fcn(xy_sig, z_sig, filter_size)
>  File "bilateral_base.pyx", line 40, in  
>bilateral.bilateral_base.Bilat_fcn.__init__ (bilateral/ 
>bilateral_base.c:752)
>NameError: np
>
>Now, bilateral_base.pyx has the line 'cimport numpy as np' at the top,  
>but somehow a NameError gets thrown the first time that 'np' is used,  
>at the end of this snippet:
>    def __init__(self, spat_sig, inten_sig, filter_size=None):
>        if filter_size is not None and filter_size >= 2:
>            self.xy_size = int(filter_size)
>        else:
>            self.xy_size = int(round(spat_sig*4))
>            # Make filter size odd
>            self.xy_size += 1-self.xy_size%2
>        x = np.arange(self.xy_size, dtype=float)
>
>
>Just for fun, I tried adding 'import numpy as np' to  
>bilateral_base.pyx after the cimport line (this is what numpy_text.pyx  
>does in the cython tests). Here then is the error that I get:
>
> >>> bilateral.bilateral(numpy.zeros((4,4)), 4, 4)
>Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "bilateral/bilateral.py", line 40, in bilateral
>    return generic_filter(mat, filter_fcn.cfilter, size=size, mode=mode)
>  File "/Library/Frameworks/Python.framework/Versions/2.5/lib/ 
>python2.5/site-packages/scipy/ndimage/filters.py", line 992, in  
>generic_filter
>    cval, origins, extra_arguments, extra_keywords)
>  File "bilateral_base.pyx", line 73, in  
>bilateral.bilateral_base.Bilat_fcn.cfilter (bilateral/bilateral_base.c: 
>1443)
>AttributeError: 'numpy.ndarray' object has no attribute 'dimensions'
>
>This corresponds to the last line in this snippet:
>    def cfilter(self, np.ndarray data):
>        'An optimized implementation'
>        cdef np.ndarray kernel = self.xy_ker
>        cdef double sigma   = self.inten_sig
>        cdef double weight_i, weight, result, centre, dat_i
>        cdef double *pdata=<double *>data.data, *pker=<double  
>*>kernel.data
>        cdef int i, dim = data.dimensions[0]
>
>Now, numpy arrays don't expose a dimensions attribute in python, but  
>the array struct has such a member, which I suppose should be exposed  
>to cython via 'cimport numpy'.
>
>So, clearly something is going wrong with cython's numpy support on my  
>system -- the tests fail, as well as actual use of numpy, but the  
>failures are different. The authors of this code can't reproduce this  
>with the same versions of cython and numpy on their linux systems, so  
>I suspect that this might be a mac issue, perhaps relating to some  
>assumptions about where the numpy headers live?
>
>On a framework install, Python.h lives in:
>/Library/Frameworks/Python.framework/Versions/2.5/include
>but numpy/arrayobject.h is in:
>/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site- 
>packages/numpy/core/include
>
>
>Can anyone offer any suggestions here?
>
>Thanks,
>
>
>Zach Pincus
>Postdoctoral Fellow, lab of Frank Slack
>Molecular, Cellular and Developmental Biology
>Yale University
>
>
>
>
>

_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to