On Friday 09 May 2008 17:10:26 Hans Meine wrote: > 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?
I didn't really understand your explanation, but another approach is to #define things on the command line. Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
