[SciPy-dev] pickling problem

Travis Oliphant oliphant.travis at ieee.org
Thu Dec 1 10:29:32 CST 2005


Darren Dale wrote:

>I am using gentoo on a 64 bit Athlon, gcc-3.4.4, python-2.4.2. This morning, I 
>removed Numeric, the rebuilt version 24.2 from scratch,  and still get the 
>same error. Last night I tested the same scipy/Numeric combination on a 32 
>bit system (gentoo, same gcc and python), and was not able to reproduce the 
>error there.
>  
>
Perhaps this is a 64-bit issue with unpickling?

>  
>
>>I can't seem to reproduce this error.
>>
>>This error will only show up in the array_fromstructinterface code which
>>parses the array_struct interface information.
>>
>>What is the result of b.flags on your system?  To find out insert print
>>b.flags right before you call Numeric.array.
>>
>>Mine is
>>
>>{'WRITEABLE': True, 'UPDATEIFCOPY': False, 'NOTSWAPPED': True,
>>'CONTIGUOUS': True, 'FORTRAN': True, 'ALIGNED': True, 'OWNDATA': False}
>>
>>In particular you are looking for WRITEABLE and ALIGNED to both be True.
>>    
>>
>
>mine is
>
>{'WRITEABLE': True, 'UPDATEIFCOPY': False, 'NOTSWAPPED': True, 'CONTIGUOUS': 
>True, 'FORTRAN': True, 'ALIGNED': False, 'OWNDATA': False}
>  
>
That's why you are getting the error, right there.  Your unpickled array 
is flagged as misaligned.  Numeric doesn't deal with misaligned or not 
writeable data. 

That means either that it's pointer is not on a boundary for the type or 
the strides are not.   I'm sure this is a 64-bit issue but don't know 
exactly the cause.  

Can you give me the result of

b.strides
b.__array_data__

and

b.flags.aligned = True ?

-Travis







More information about the Scipy-dev mailing list