rpi para instalar gui framework python c gcc cython kivy

para - kivy python gui



No se puede instalar Kivy: error de Cython/GCC (2)

Acaba de cumplir el mismo error. El uso de Cython 0.17.1 me ayuda a:

sudo pip install Cython==0.17.1

Si no solo quiere solucionar el problema, puede profundizar y comprobar qué se cambió entre estas dos versiones. https://github.com/cython/cython/blob/master/CHANGES.rst#0172-2012-11-20 - aquí puede encontrar problemas relacionados, pero desafortunadamente no soy un gurú de C / Cython y una mirada rápida diferenciar entre maestro y 0.17.1 no me dice dónde está el problema, pero si lo deseas, puedes investigar el problema por ti mismo.

Así que intenté instalar Kivy siguiendo las instrucciones del sitio oficial:

$ sudo apt-get install python-setuptools python-pygame python-opengl / python-gst0.10 python-enchant gstreamer0.10-plugins-good python-dev / build-essential libgl1-mesa-dev libgles2-mesa-dev python-pip $ sudo pip install --upgrade cython $ sudo easy_install kivy

Esto es lo que obtengo:

Searching for kivy Reading http://pypi.python.org/simple/kivy/ Best match: Kivy 1.4.1 Downloading http://pypi.python.org/packages/source/K/Kivy/Kivy-1.4.1.tar.gz#md5=94bba894269e4bdecc7881f256367e01 Processing Kivy-1.4.1.tar.gz Running Kivy-1.4.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-MMi2Fv/Kivy-1.4.1/egg-dist-tmp-EcKbfC [INFO ] Kivy v1.4.1 Found GLES 2.0 headers at /usr/include/GLES2/gl2.h Build configuration is: * use_opengl_es2 = True * use_glew = False * use_opengl_debug = False * use_mesagl = False Generate config.h Generate config.pxi /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c: In function ‘__pyx_f_4kivy_8graphics_14transformation_6Matrix_identity’: /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c:2774:13: error: incompatible types when assigning to type ‘__pyx_t_4kivy_8graphics_14transformation_matrix_t’ from type ‘double *’ /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c: In function ‘__pyx_f_4kivy_8graphics_14transformation_6Matrix_inverse’: /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c:2978:13: error: incompatible types when assigning to type ‘__pyx_t_4kivy_8graphics_14transformation_matrix_t’ from type ‘double *’ /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c:2980:13: error: incompatible types when assigning to type ‘__pyx_t_4kivy_8graphics_14transformation_matrix_t’ from type ‘double *’ /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c: In function ‘__pyx_f_4kivy_8graphics_14transformation_6Matrix_multiply’: /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c:3364:13: error: incompatible types when assigning to type ‘__pyx_t_4kivy_8graphics_14transformation_matrix_t’ from type ‘double *’ /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c:3366:13: error: incompatible types when assigning to type ‘__pyx_t_4kivy_8graphics_14transformation_matrix_t’ from type ‘double *’ /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c:3368:13: error: incompatible types when assigning to type ‘__pyx_t_4kivy_8graphics_14transformation_matrix_t’ from type ‘double *’ /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c: In function ‘__pyx_pf_4kivy_8graphics_14transformation_6Matrix_20__str__’: /tmp/easy_install-MMi2Fv/Kivy-1.4.1/kivy/graphics/transformation.c:3674:13: error: incompatible types when assigning to type ‘__pyx_t_4kivy_8graphics_14transformation_matrix_t’ from type ‘double *’ error: Setup script exited with error: command ''gcc'' failed with exit status 1

Después de no encontrar una respuesta en la web, comencé a investigar los archivos que generaban el error: transformación.c, transformación.pyx y transformación.pyd. También leí un poco sobre Cython.

En primer lugar, todos los errores son del mismo tipo:

error: incompatible types when assigning to type ‘__pyx_t_4kivy_8graphics_14transformation_matrix_t’ from type ‘double *’

El primer error se plantea aquí:

__pyx_t_3 = __pyx_v_self->mat;

El tipo de __pyx_t_3 es:

__pyx_t_4kivy_8graphics_14transformation_matrix_t

Tiene este nombre extraño porque se generó automáticamente a partir del archivo transformación.pxd :

ctypedef double matrix_t[16]

Entonces, escriba ( __pyx_t_3 ) == tipo (matrix_t) == doble *.

El tipo de __pyx_v_self es:

struct __pyx_obj_4kivy_8graphics_14transformation_Matrix *

Nuevamente, fue generado a partir de transformación.pxd :

ctypedef double matrix_t[16] cdef class Matrix: cdef matrix_t mat ...

Por lo tanto, escriba ( __pyx_v_self-> mat ) == type (Matrix.mat) == type (matrix_t) == double *

Como podemos ver, ambos lados de la tarea:

__pyx_t_3 = __pyx_v_self->mat;

Son de tipo (doble *).

¿Por qué es este error:

error: incompatible types when assigning to type ‘__pyx_t_4kivy_8graphics_14transformation_matrix_t’ from type ‘double *’

siendo criado entonces?

Parece que el compilador no está reconociendo el tipo de matrix_t como un doble *.