c++ python include cmake kdevelop

c++ - Python.h: No existe tal archivo o directorio



kdevelop ubuntu (6)

Desea incluir lo siguiente en la línea de compilación:

`python-config --cflags`

Y esto en la linea de enlace:

`python-config --ldflags`

Recientemente instalé el desarrollo de KDevelop 4 para C ++ en mi Macbook Pro con Ubuntu 12.04 LTS.

Quiero incrustar la aplicación Python en mi código C ++. Para hacer eso, uno necesita incluir el archivo de cabecera Python.h. Entonces, hice eso.

#include <iostream> #include <Python.h> int main(int argc, char **argv) { Py_Initialize(); return 0; }

Sin embargo, al ejecutar, recibí la siguiente respuesta del IDE:

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

Sin embargo, encontré el problema bastante pronto. No había descargado el paquete python-dev. Entonces, hice eso. Corrí otra vez pero el mismo error estaba allí otra vez. Entonces, pensé que debía haber un problema con el archivo de encabezado que no estaba incluido en KDevelop. Por lo tanto, agregué la carpeta correspondiente a la ruta de inclusión y KDevelop reconoció de inmediato al eliminar el subrayado rojo debajo de la segunda declaración de inclusión en el código anterior.

Pero aún así, el problema sigue siendo. Me sale el mismo error. Agradecería cualquier ayuda o aportes que ustedes puedan proporcionar :-)

Muchas gracias.

EDITAR: Algunos detalles que no mencioné anteriormente son que KDevelop está usando cmake para mi proyecto. Supongo que la razón por la que está ocurriendo mi problema es porque cmake no conoce las rutas apropiadas del compilador y del vinculador. Agradecería cualquier ayuda para establecer los caminos correctos para cmake.


En su CMakeLists.txt, intente agregar lo siguiente:

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

Para detalles de los comandos, ejecute:

cmake --help-module FindPythonLibs cmake --help-command find_package cmake --help-command include_directories cmake --help-command target_link_libraries


Lo más probable es que Python.h no esté en la ruta de inclusión de los sistemas de compilación. Puedes averiguar dónde está tu Python.h ejecutando

dpkg -L python-dev | grep Python.h

Esto también verificará que el paquete python-dev realmente instaló un Python.h.

No tengo un kdevelop aquí, pero la mayoría de los IDE tienen una configuración en la que puedes especificar la ruta de inclusión utilizada por el sistema de compilación, y deberías poder agregar la ruta donde se encuentra Python.h.

EDITAR:

Como lo indicó Nikolai, también deberá agregar la ruta correcta de la biblioteca para la etapa de enlace. (Salida de python-config --ldflags).


Para usuarios de Linux Ubuntu Putty intente esto:

sudo apt-get update sudo apt-get install python-dev

luego compilarlo

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

entonces ejecútalo

./check


Supongo que ya está instalado. Encuentra el camino con:

find / -iname python.h

y cuando lo haya hecho, al compilar agregue.

-I python_h_path


sudo apt-get install python2.7-dev

trabajó para mí en un problema de "Python.h: no existe tal archivo o directorio"