On 10 August 2011 04:01, Pauli Virtanen <p...@iki.fi> wrote: > Mon, 08 Aug 2011 11:27:14 -0400, Angus McMorland wrote: >> I've just upgraded to the latest numpy from git along with upgrading >> Ubuntu to natty. Now some of my code, which relies on ctypes-wrapping of >> data structures from a messaging system, fails with the error message: >> >> "RuntimeWarning: Item size computed from the PEP 3118 buffer format >> string does not match the actual item size." >> >> Can anyone tell me if this was a change that has been added into the git >> version recently, in which case I can checkout a previous version of >> numpy, or if I've got to try downgrading the whole system (ergh.) > > Python's ctypes module implements its PEP 3118 support incorrectly > in recent Python versions. There's a patch in waiting: > > http://bugs.python.org/issue10744 > > In the meantime, you can just silence the warnings using the warnings > module, > > warnings.simplefilter("ignore", RuntimeWarning)
Thanks Pauli. I was seeing a segfault everytime I saw the error message, and since both started happening at the same time, I was guilty of mixing correlation and causation. After rebuilding numpy about 10 times, I have identified the first git commit after which the segfault appears (feb8079070b8a659d7ee) , and a small piece of code that triggers it: from ctypes import Structure, c_double #-- copied out of an xml2py generated file class S(Structure): pass S._pack_ = 4 S._fields_ = [ ('field', c_double * 2), ] #-- import numpy as np print np.version.version s = S() print "S", np.asarray(s.field) Can anyone confirm this, in which case it's probably a bug? Thanks, Angus -- AJC McMorland Post-doctoral research fellow Neurobiology, University of Pittsburgh _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion