Robert Bradshaw wrote: > Ah hah, that's where the error is getting introduced. You can't just move compiled > files around, as their absolute (rather than relative) location is needed and used > at compile time.
> There was a recent thread on whether or not the full module path is needed at > compile time. It would be nice if one was able to just do stuff like this, but it > seems the issue is more subtle. (I'll be happy to be proven wrong.) Greg Ewing wrote: > The cimport statement uses the Pyrex/Cython compiler's idea of the module > namespace at compile time. If you move things around after that, it will get > confused. This is indeed what I was trying to "get round" ;-) Today our source code database structure does not care at all of the final package structure. So the fact that PXD files need to be located withing the same directory structure as the PYD/SO files clearly is an issue for us. This could be seen like any C code that needs a dynamic library: - the source code includes a .h file that the compiler has to find possibly through a -I option, - the linker has to find the static library (.a/.lib) possibly through -L/-l options, - the application has to find the dynamic library (.so/.dll) possibly through LD_LIBRARY_PATH/PATH environment variables. Among these 3 steps (compiler/linker/execution), none requires that files are located in the same directory (and they usually don't). So I'm "pushing" to get this behaviour, considering that PXD files have to be found at Cython'ization stage (through -I options), while SO/PYD files at execution stage (Python stuff). No need for a strong relationship between them. Meanwhile, I'm patching the generated C code to get round the few issues I have around that. I'm reporting these issues, hoping they will be considered. Now if you tell me that it is an intented behaviour, and you don't plan to modify it (or support both?), I will stop ennoying you with my requests. This also means that I could reconsider the use of Cython for our needs. Which would be a pity, I like the philosophy. If there's still a chance that my request(s) may be supported one day, it might also be nice to support a syntax like: cimport foo "pkg.foo" That would load foo.pxd from the path list (-I) but would generate the equivalent import of pkg.foo at runtime. Cheers, Stephane _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
