[Pyrex] sizeof operator problem

Daniele Pianu muogoro at gmail.com
Tue Dec 30 09:36:44 CET 2008


Excuse me for the wrong error message specified in the mail sent.
Compile the egg.pyx source of the previous mail with the pyrexc
compiler raises this error:

[daniele at tharros sizeofTest]$ pyrexc egg.pyx
/home/daniele/Projects/Pyrex/sizeofTest/egg.pyx:4:21: 'spam' is not a
constant, variable or function identifier

Any idea?
Daniele.

2008/12/29 Daniele Pianu <muogoro at gmail.com>:
> I'm using the sizeof C operator to obtain the size of this spam structure:
>
> cdef struct spam:
>  int foo
>  int bar
>
> The spam structure is declared in the spam.pxd source. The egg
> extention type, defined in the egg.pyx source, imports the spam's
> definition and trys to print the spam structure size:
>
> cimport spam
> cdef class egg:
>  def __init__( self ):
>    print sizeof(spam.spam)
>
> The compilation of the egg.pyx source raises this error:
>
> [daniele at tharros 0.0.9]$ pyrexc tmp/PyArrayF32.pyx
> /home/daniele/Projects/Python/PyBBDMMaker/0.0.9/tmp/PyArrayF32.pyx:9:64:
> 'ArrayF32' is not a constant, variable or function identifier
>
> I've read here http://thread.gmane.org/gmane.comp.python.pyrex/2340/focus=2341
> that a from-cimport statment solves the problem, but I'm using the
> sizeof operator in the way described above in my sources, where the C
> structure and the extension type which wraps the structure have the
> same name (that is, for a Foo structure, a C_Foo.pxd source contains
> the structure-extern definition and a PyFoo.pxd defines the wrapper. I
> refer to the structure in the Foo extension type as C_Foo.Foo and I
> pass the same name to the sizeof operator). Now the question: is there
> a solution different from the from-cimport statement suggested in the
> linked post?
>
> Thanks for your help,
> Daniele
>



More information about the Pyrex mailing list