wake-up-neo.net

Python.h-Datei kann nicht auf CentOS gefunden werden

Ich versuche, eine in C geschriebene Python-Erweiterung auf einer CentOS-Maschine zu kompilieren. ich bekomme 

error: Python.h: No such file or directory

Es funktioniert gut auf Ubuntu, wo ich Python-dev mit apt-get installiert habe.

Ich habe versucht, Python-devel zu installieren

yum install python-devel

aber es ist bereits installiert. Wie kann ich diesen Fehler beheben?

21
yzernik

Auf meinem System befindet sich die Python.h-Headerdatei im Pfad /usr/include/python2.6/. Da dieser Pfad standardmäßig nicht vom Vorprozessor durchsucht wird, müssen Sie ihn der Liste der zu durchsuchenden Pfade hinzufügen. Dies geschieht mit der Option -I für den Compiler wie folgt:

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

Ändern Sie den Pfad oben in den tatsächlichen Pfad in Ihrem System. Sie können es entweder mit dem Befehl find , wie in einem Kommentar vorgeschlagen, oder mit dem Befehl locate finden, falls installiert.

Wenn Sie python3 verwenden, können Sie dafür python34-devel installieren

Es ist unter EPEL Repository verfügbar und verfügt über python34-devel package

Sie müssen diesen Befehl einfach ausführen, um ihn zu installieren

yum install python34-devel

Ich hoffe es hilft

* note Zurzeit ist python34-devel die aktuellste Version von Python 3

21
  • zum CentOS 7.4
    • Python 3.6.6: yum -y install python36-devel
    • Python 2: yum -y install python-devel
  • für Ubuntu
    • Python 3.6: apt-get install libpython3.6-dev
2
crifan

Installieren Sie python3.4 (include pip) & python3.4-dev-Pakete auf 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

Ich hatte ein ähnliches Problem, als der Standardwert für Python 2.7 war, Pip jedoch gegen 3.4 lief und ich wollte 2.7 verwenden. Also habe ich: yum remove python34-pip und yum install python2-pip. Ich habe es gelöst!

0
Scala William

Ich hatte auch ein ähnliches Problem.

./python/py_defines.h:39:20: schwerwiegender Fehler: Python.h: Keine solche Datei oder Verzeichnis

Während der Suchbefehl zeigte, dass der python.h existiert.

Die oben genannten Lösungen funktionierten nicht, jedoch funktionierte die unten stehende Befehlsausführung für mich.

yum install python27-python-devel.x86_64

Nicht viel anders, aber viel Zeit verschwendet.

0
departed

Dies hängt von der Python ab, die Sie haben!

Sie benötigen ein dev-Paket, die Version X.X.X für Python X.X.X. Sie können unter https://centos.pkgs.org/7/ius-x86_64 suchen.

Wenn Sie beispielsweise Python 3.6.5 von IUS verwenden, müssen Sie https://centos.pkgs.org/7/ius-x86_64/python36u-devel-3.6.5-1.ius.centos7.x86_64 installieren .rpm.html .

0
Thomas Decaux