web-dev-qa-db-fra.com

Impossible de trouver le fichier Python.h sur CentOS

J'essaie de compiler une extension Python écrite en C sur une machine CentOS. Je reçois 

error: Python.h: No such file or directory

Cela fonctionne très bien sur Ubuntu, où j’ai installé python-dev en utilisant apt-get.

J'ai essayé d'installer python-devel en utilisant

yum install python-devel

mais il est déjà installé. Comment puis-je corriger cette erreur?

21
yzernik

Sur mon système, le fichier d'en-tête Python.h se trouve dans le chemin /usr/include/python2.6/. Comme ce chemin n'est pas recherché par le pré-processeur par défaut, vous devez l'ajouter à la liste des chemins à rechercher. Ceci est fait avec l'option -I au compilateur, comme ceci:

$ gcc -I/usr/include/python2.6 source.c -o program

Remplacez le chemin ci-dessus par le chemin réel sur votre système. Vous pouvez le trouver avec la commande find telle que proposée dans un commentaire, ou avec la commande locate si elle est installée.

8

Si vous utilisez python3, vous pouvez installer python34-devel pour cela

Il est disponible sur EPEL Repository et a le paquet python34-devel disponible

Il vous suffit simplement d'exécuter cette commande pour l'installer

yum install python34-devel

J'espère que c'est de l'aide

* note À l'heure actuelle, python34-devel est la version la plus récente de python 3.

21

Installez les packages python3.4 (include pip) et python3.4-dev sur Centos6.X:

yum install http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python34u-3.4.2-1.ius.centos6.x86_64.rpm
yum install http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python34u-devel-3.4.2-1.ius.centos6.x86_64.rpm
0
gzerone

J'ai eu un problème similaire où Python par défaut était de 2,7 mais où pip s'exécutait contre 3.4 et je voulais utiliser la 2.7. Alors j'ai fait: yum remove python34-pip et yum install python2-pip. Résolu!

0
Scala William

Moi aussi j'ai eu le même problème.

./python/py_defines.h:39:20: erreur fatale: Python.h: Aucun fichier de ce type ou annuaire

Alors que la commande find a montré que le python.h existe.

Les solutions ci-dessus ne fonctionnaient pas, mais l'exécution de la commande ci-dessous fonctionnait pour moi.

yum install python27-python-devel.x86_64

Pas très différent mais beaucoup de temps perdu.

0
departed

Cela dépend du Python que vous avez!

Vous avez besoin d'un package dev, la version X.X.X pour Python X.X.X dont vous disposez, vous pouvez effectuer une recherche sur https://centos.pkgs.org/7/ius-x86_64 .

Par exemple, si vous avez Python 3.6.5 d'IUS, vous devez installer https://centos.pkgs.org/7/ius-x86_64/python36u-devel-3.6.5-1.ius.centos7.x86_64. .rpm.html .

0
Thomas Decaux