it-swarm.com.de

Python.h: Keine solche Datei oder Verzeichnis

Ich habe kürzlich KDevelop 4 für die Entwicklung von C++ auf meinem Macbook Pro installiert, auf dem Ubuntu 12.04 LTS ausgeführt wird.

Ich möchte die Python-Anwendung in meinen C++ - Code einbetten. Dazu muss die Python.h-Headerdatei eingefügt werden. Also habe ich das gemacht.

#include <iostream>
#include <Python.h>

int main(int argc, char **argv) {
    Py_Initialize();
    return 0;
}

Beim Ausführen erhielt ich jedoch die folgende Antwort von der IDE:

fatal error: Python.h: No such file or directory

Ich habe das Problem jedoch früh genug gefunden. Ich hatte das python-dev-Paket nicht heruntergeladen. Also habe ich das gemacht. Ich rannte wieder, aber der gleiche Fehler war wieder da. Ich dachte also, es muss ein Problem sein, wenn die Header-Datei nicht in KDevelop enthalten ist. Daher habe ich den entsprechenden Ordner zum Include-Pfad hinzugefügt, und KDevelop erkannte dies sofort, indem ich die rote Unterstreichung unter der zweiten Include-Anweisung im obigen Code entfernte.

Trotzdem bleibt das Problem bestehen. Ich bekomme den gleichen Fehler. Ich würde mich über jede Hilfe oder Eingaben freuen, die ihr zur Verfügung stellen könnt :-)

Danke vielmals.

BEARBEITEN: Einige Details, die ich zuvor nicht erwähnt habe, besagen, dass KDevelop cmake für mein Projekt verwendet. Ich denke, der Grund für mein Problem ist, dass cmake die entsprechenden Compiler- und Linker-Pfade nicht kennt. Ich würde mich über jede Hilfe bei der Einstellung der richtigen Pfade für cmake freuen.

23
Shubham Goyal

Fügen Sie in Ihrer CMakeLists.txt Folgendes hinzu:

find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
target_link_libraries(<your exe or lib> ${PYTHON_LIBRARIES})

Um Details zu den Befehlen zu erhalten, führen Sie Folgendes aus:

cmake --help-module FindPythonLibs
cmake --help-command find_package
cmake --help-command include_directories
cmake --help-command target_link_libraries
36
Fraser
Sudo apt-get install python2.7-dev

arbeitete für mich an einem Problem "Python.h: Keine solche Datei oder Verzeichnis"

28
Dimitris Baltas

Sie möchten Folgendes in die Kompilierzeile aufnehmen:

`python-config --cflags`

und das auf der Linklinie:

`python-config --ldflags`
11

Wahrscheinlich befindet sich Python.h nicht im Include-Pfad Ihrer Build-Systeme. Sie können herausfinden, wo sich Ihre Python.h befindet, indem Sie ausführen

dpkg -L python-dev | grep Python.h

Dadurch wird auch überprüft, ob das Paket python-dev tatsächlich eine Python.h installiert hat.

Ich habe kein kdevelop hier, aber die meisten IDEs haben irgendwo eine Einstellung, wo Sie den Include-Pfad angeben können, der vom Build-System verwendet wird, und Sie sollten in der Lage sein, den Pfad hinzuzufügen, in dem Python.h liegt.

BEARBEITEN:

Wie Nikolai angedeutet hat, müssen Sie auch den richtigen Bibliothekspfad für die Verbindungsphase hinzufügen. (Ausgabe von python-config --ldflags).

4
niko

Ich gehe davon aus, dass es bereits installiert ist. Finde den Pfad mit:

find / -iname python.h

und wenn du das gemacht hast, beim kompilieren hinzufügen

-I python_h_path
2
Roxy

Für Linux Ubuntu PuTTY-Benutzer versuchen Sie Folgendes:

Sudo apt-get update
Sudo apt-get install python-dev

dann kompilieren Sie es

gcc -o check xyz.c -I/usr/include/python2.7/ -lpython2.7

dann führe es aus 

./check 
0
chhotu sardar