Питон.ч: нет такого файла или каталога

недавно я установил KDevelop 4 для разработки C++ на моем Macbook Pro под управлением Ubuntu 12.04 LTS.

Я хочу встроить приложение Python в свой код c++. Для этого нужно включить Python.файл заголовка H. Я так и сделал.

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

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

однако при запуске я получил следующий ответ от IDE:

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

тем не менее, я нашел проблему достаточно скоро. Я не загрузил пакет python-dev. Я так и сделал. Я снова побежал, но опять та же ошибка. Итак, я подумал, что это должна быть проблема с заголовочным файлом, не включенным KDevelop. Таким образом, я добавил соответствующую папку в include path, и KDevelop сразу же распознал это, удалив красное подчеркивание под вторым оператором include в коде выше.

но все же проблема остается. Я получаю ту же ошибку. Был бы признателен за любую помощь или входы, которые вы, ребята, можете предоставить : -)

Спасибо большое.

EDIT: некоторые детали то, что я пропустил ранее, - это то, что KDevelop использует cmake для моего проекта. Я думаю, причина моей проблемы заключается в том, что cmake не знает соответствующих путей компилятора и компоновщика. Я был бы признателен за любую помощь в настройке правильных путей для cmake.

6 ответов


в CMakeLists.txt, попробуйте добавить следующее:

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

для получения подробной информации о командах выполните:

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

sudo apt-get install python2.7-dev

работал для меня на " Python.h: нет такого файла или каталога " issue


вы хотите включить в строку компиляции следующее:

`python-config --cflags`

и это на линии связи:

`python-config --ldflags`

скорее всего Python.h не входит в путь включения ваших систем сборки. Вы можете узнать, где ваш Python.h-путем запуска

dpkg -L python-dev | grep Python.h

Это также проверит, что пакет python-dev фактически установил Python.h.

у меня здесь нет kdevelop, но у большинства IDEs есть параметр, где вы можете указать путь включения, используемый системой сборки, и вы должны иметь возможность добавить путь, где Python.H лежит там.

EDIT:

Как Николай подразумевал, что вам также нужно будет добавить правильный путь к библиотеке для этапа связывания. (Вывод python-config --ldflags).


Я предполагаю, что он уже установлен. Найдите путь с помощью:

find / -iname python.h

и когда вы это сделали, при компиляции add

-I python_h_path

для пользователей Linux Ubuntu Putty попробуйте следующее:

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

затем скомпилировать его

gcc -o check xyz.c -I/usr/include/python2.7/ -lpython2.7
запустить
./check