2010-12-15 92 views
19

Essayez d'installer Cython sur un petit VPS exécutant Ubuntu Server. Est-ce queCython Installez l'erreur GCC

sudo apt-get install gcc 

puis

python setup.py install 

Dans le répertoire Cython, mais je reçois cette erreur particulière.

running install 
running build 
running build_py 
running build_ext 
building 'Cython.Plex.Scanners' extension 
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c Cython/Plex/Scanners.c -o build/temp.linux-x86_64-2.6/Cython/Plex/Scanners.o 
Cython/Plex/Scanners.c:4:20: error: Python.h: No such file or directory 
Cython/Plex/Scanners.c:6:6: error: #error Python headers needed to compile C extensions, please install development version of Python. 
error: command 'gcc' failed with exit status 1 

Pourquoi devrais-je avoir besoin d'une 'version de développement de Python'? Exécution de Python 2.6.5 (r265: 79063, 16 avril 2010, 13:57:41). Merci!

Répondre

36

Vous avez besoin de la version développeur de Python - à savoir les fichiers d'en-tête de Python (Python.h)

sudo apt-get install python-dev 
+0

Okay! Puis-je demander pourquoi cela est nécessaire? Ma machine de développement (Windows) a juste le Python 2.6 standard et fonctionne bien. Ensuite, j'ai installé via l'installateur packagé, donc il aurait pu tout inclure. – DizzyDoo

+0

Une réponse simple serait que certains fichiers source dans Cython #include certains fichiers d'en-tête python et donc vous avez besoin d'en-têtes python pour compiler Cython. Si vous voulez savoir pourquoi ces fichiers sont utilisés, vous devez regarder Cython source. – binW

+1

Cela est également dû au fait qu'Ubuntu et Debian choisissent de séparer les paquets devel. – user225312

4

Vous avez besoin des en-têtes inclus dans la version de développement de Python, à savoir python.h. Il devrait être empaqueté dans Ubuntu comme python-dev.