Hello everyone,
I'm trying to use cython to build a customized python extension that
interfaces evas from the enlightenment foundation libraries. Their team
has already written a binding which my work relies upon:
http://trac.enlightenment.org/e/browser/trunk/BINDINGS/python/python-evas
I took the files in evas/ and include/, added my move_relative.pyx file
and tried to compile the bunch. However, there are problems arising.
Unfortunately I couldn't find any way to solve this, nor could I find
anyone able to help me with this. For this reason, you're my last
hope :)
Scenario 1: If my move_relative.pyx contains
------------------------------------------------------------------
import evas
cdef _evas_move_relative(evas.c_evas.Evas_Object *obj, int dx, int dy):
cdef int x, y
c_evas.evas_object_geometry_get(obj, &x, &y, NULL, NULL)
c_evas.evas_object_move(obj, x + dx, y + dy)
def evas_move_relative(evas.c_evas.Object object, dx, dy):
_evas_move_relative(object.obj, dx, dy)
------------------------------------------------------------------
the code makes use of the python-evas binding as intended but fails to
compile:
move_relative.pyx:10:23: 'move_relative' is not a cimported module
I neither understand the meaning of the error message, nor does it give
any helpful clues as to how the problem can be resolved. With that, I'm
kind of stuck.
Scenario 2: If my move_relative.pyx contains
------------------------------------------------------------------
cimport c_evas
cdef _evas_move_relative(c_evas.Evas_Object *obj, int dx, int dy):
cdef int x, y
c_evas.evas_object_geometry_get(obj, &x, &y, NULL, NULL)
c_evas.evas_object_move(obj, x + dx, y + dy)
def evas_move_relative(c_evas.Object object, dx, dy):
_evas_move_relative(object.obj, dx, dy)
------------------------------------------------------------------
the code compiles just fine but an import fails on runtime:
Traceback (most recent call last):
File "01-smart_object_cython.py", line 7, in <module>
from move_relative import evas_move_relative
File "c_evas.pxd", line 682, in move_relative (move_relative.c:1036)
ImportError: No module named c_evas
Line 1036 contains a call to __Pyx_ImportType() that imports c_evas.
I can see why the import would fail as c_evas is a submodule of evas but
the fact that cython doesn't fail compilation with the "cimported
module" message confuses me.
I would be very happy if someone could shed some light into this issue
and give me a pointer on where to look.
-Soeren Apel
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev