Hi, I am trying to return a numpy array from one of my member functions. I got it worked out, but I have one remaining, sip-related problem:
As e.g. explained on http://numpy.scipy.org/numpydoc/numpy-13.html, I need to call import_array() in my module initialization code. I am using %PostInitialisationCode import_array(); %End for that. However, import_array is defined in the numpy header files, so care must be taken not to produce clashing symbols in every compilation unit. This should be done by defining PY_ARRAY_UNIQUE_SYMBOL to a unique name and defining NO_IMPORT_ARRAY in all but the modules' main compilation unit in which the function is being called. (Don't know where this is properly explained ATM.) However, I cannot get this to work; %UnitCode would be included in every unit, so it cannot be used becase NO_IMPORT_ARRAY must not be defined in sipfoocmodule.cpp. Similarly, I tried %ModuleCode and %ModuleHeaderCode. I used %TypeHeaderCode to #define NO_IMPORT_ARRAY, but the sipfooBar.h header files are all included at the very beginning of sipfoocmodule.cpp, so it is defined there, too, before the %ModuleCode. The only temporary solution I found is to manually move the code inserted by %ModuleCode above the mentioned #includes. (Note that it cannot simply be #undef'ed, because it is used in conjunction with a subsequent #include which immediately evaluates the setting.) Is this impossible with sip (BTW: I am using sip 4.5.2 and PyQt 4.1.1), and/or has anybody else tried using numpy together with SIP/PyQt? -- Ciao, / / /--/ / / ANS _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt