# \[Cython\] Probleme a la compilation

**URL:** <https://www.debian-fr.org/t/cython-probleme-a-la-compilation/65404>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 9:29 UTC](https://www.debian-fr.org/t/cython-probleme-a-la-compilation/65404 "2016-02-21T21:29:17Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![N3mesis98](https://www.debian-fr.org/user_avatar/www.debian-fr.org/n3mesis98/32/3002_2.png) [@N3mesis98](https://www.debian-fr.org/u/N3mesis98)\
**Post date:** [Février 21, 2016, 9:29 UTC](https://www.debian-fr.org/t/cython-probleme-a-la-compilation/65404/1 "2016-02-21T21:29:18Z")

</div>

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 !

---

<div class="post-metadata">

**Author:** ![limax](https://www.debian-fr.org/user_avatar/www.debian-fr.org/limax/32/3886_2.png) [@limax](https://www.debian-fr.org/u/limax)\
**Post date:** [Février 21, 2016, 9:29 UTC](https://www.debian-fr.org/t/cython-probleme-a-la-compilation/65404/2 "2016-02-21T21:29:37Z")

</div>

Bonjour

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

Je viens de faire comme [expliqué ici](https://chabotsi.fr/autoblog/autoblogs/sametmaxcom_74350692954845fdefe59443711cec2c84431b6d/?Peut-on-compiler-un-programme-Python)

`$ 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 !
`

---

<div class="post-metadata">

**Author:** ![N3mesis98](https://www.debian-fr.org/user_avatar/www.debian-fr.org/n3mesis98/32/3002_2.png) [@N3mesis98](https://www.debian-fr.org/u/N3mesis98)\
**Post date:** [Février 21, 2016, 9:29 UTC](https://www.debian-fr.org/t/cython-probleme-a-la-compilation/65404/3 "2016-02-21T21:29:38Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![limax](https://www.debian-fr.org/user_avatar/www.debian-fr.org/limax/32/3886_2.png) [@limax](https://www.debian-fr.org/u/limax)\
**Post date:** [Février 21, 2016, 9:29 UTC](https://www.debian-fr.org/t/cython-probleme-a-la-compilation/65404/4 "2016-02-21T21:29:38Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![N3mesis98](https://www.debian-fr.org/user_avatar/www.debian-fr.org/n3mesis98/32/3002_2.png) [@N3mesis98](https://www.debian-fr.org/u/N3mesis98)\
**Post date:** [Février 21, 2016, 9:29 UTC](https://www.debian-fr.org/t/cython-probleme-a-la-compilation/65404/5 "2016-02-21T21:29:38Z")

</div>

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

```auto
cython3 : 0.21.1-1
python3 : 3.4.2-2
```

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

---

<div class="post-metadata">

**Author:** ![limax](https://www.debian-fr.org/user_avatar/www.debian-fr.org/limax/32/3886_2.png) [@limax](https://www.debian-fr.org/u/limax)\
**Post date:** [Février 21, 2016, 9:29 UTC](https://www.debian-fr.org/t/cython-probleme-a-la-compilation/65404/6 "2016-02-21T21:29:38Z")

</div>

j’ai

```auto
$ 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](http://cython.py) ca ne me plait pas.

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

---

<div class="post-metadata">

**Author:** ![N3mesis98](https://www.debian-fr.org/user_avatar/www.debian-fr.org/n3mesis98/32/3002_2.png) [@N3mesis98](https://www.debian-fr.org/u/N3mesis98)\
**Post date:** [Février 21, 2016, 9:29 UTC](https://www.debian-fr.org/t/cython-probleme-a-la-compilation/65404/7 "2016-02-21T21:29:39Z")

</div>

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

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

Merci pour la réponse !
