[Cython] Probleme a la compilation

Bonjour a tous,

Je suis actuellement en train d’essayer de me mettre au Cython pour pouvoir optimiser des scripts Python, mais je rencontre quelques problèmes.
Pendant ce temps je me focalise sur le fonctionnement d’un simple “hello world” :

[code]# -- coding: utf-8 --

if name == “main”:
print(“Hello World !”)
[/code]

J’essaie donc d’exécuter les commandes suivantes pour en arriver a un exécutable :

cython3 cython.pyx gcc -I/usr/include/python3.4/ cython.c

La première commande passe comme sur des roulettes, mais a la deuxième j’obtiens les erreurs suivantes :

cython.c:422:14: error: conflicting types for ‘PyTypeObject’ typedef void PyTypeObject; ^ In file included from /usr/include/python3.4/pytime.h:6:0, from /usr/include/python3.4/Python.h:65, from cython.c:16: /usr/include/python3.4/object.h:422:3: note: previous declaration of ‘PyTypeObject’ was here } PyTypeObject; ^ cython.c: In function ‘__Pyx_PyObject_GetAttrStr’: cython.c:488:18: warning: dereferencing ‘void *’ pointer if (likely(tp->tp_getattro)) ^ cython.c:399:43: note: in definition of macro ‘likely’ #define likely(x) __builtin_expect(!!(x), 1) ^ cython.c:488:18: error: request for member ‘tp_getattro’ in something not a structure or union if (likely(tp->tp_getattro)) ^ cython.c:399:43: note: in definition of macro ‘likely’ #define likely(x) __builtin_expect(!!(x), 1) ^ cython.c:489:18: warning: dereferencing ‘void *’ pointer return tp->tp_getattro(obj, attr_name); ^ cython.c:489:18: error: request for member ‘tp_getattro’ in something not a structure or union

Je ne comprend pas trop d’où viens mon erreur, c’est pourtant censé être un cas trivial…

Si quelqu’un a une idée pour résoudre ce problème…
Merci d’avance !

Bonjour

Je ne suis pas un expert de cython mais ton fil m’interesse.

Je viens de faire comme expliqué ici

$ cython3 cythontest.py -o cythontest.c --embed $ gcc -Os -I /usr/include/python3.4m cythontest.c -o cythontest -lpython3.4m -lpthread -lm -lutil -ldl $ chmod +x cythontest $ ./cythontest Hello World !

Je viens d’essayer avec ces commandes, mais je tombe toujours sur la même erreur au moment de la compilation.
Par pure curiosité, tu tourne sous testing ou une autre version de Debian ?

En tout cas merci pour ta réponse.

[quote=“N3mesis98”]
Par pure curiosité, tu tourne sous testing ou une autre version de Debian ?[/quote]Bonjour je suis sous sid

Personnellement j’ai ça au niveau des versions de cython et python :

cython3 : 0.21.1-1
python3 : 3.4.2-2

Tu as la même chose ou bien une version plus récente ?

j’ai

$ acpo cython3
cython3:
  Installé : 0.21.1-1
$ acpo python3
python3:
  Installé : 3.4.2-2

Essaye de changer de nom de fichier quand même. Parce que cython.py ca ne me plait pas.

/usr/lib/python3/dist-packages/cython.py

J’ai changé le nom du fichier et maintenant ça marche en utilisant les commandes suivantes :

cython3 test.pyx
gcc -I/usr/include/python3.4m test.c -lpython3.4m

Merci pour la réponse !