Is it possible to import arbitrary modules in cython, compile them to shared object files and then use them in python 3.1?
The reason for this is, that I am writing an extension for the program “blender”, which has an internal python 3.1 interpreter. But i would also like to make use of some python-modules which are not ported to 3.x, yet
I have specifically numpy in my mind (but also some other libraries). I have a module, which makes use of numpy. As I want to redistribute that module, I don’t want poeple to install numpy on their machines. would that work?
In principle, I believe it’s possible. Cython works by translating Python-like code to C code. That code can be compiled for either Python 2 or Python 3 (it uses C preprocessor statements to change which code is used).
The bad news is that it will only work for extensions written in Python-like code that Cython can translate. You can’t use Cython on extensions written in C, like Numpy.
The good news is that, at least for Numpy, you shouldn’t have to. Since version 1.5, Numpy supports Python 3. There’s a binary available for Windows; on other systems, you might have to work out how to compile the code yourself.