Python.h: Нет такого файла или каталога - программирование
Подтвердить что ты не робот

Python.h: Нет такого файла или каталога

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

Я хочу встроить приложение Python в свой код на С++. Для этого нужно включить заголовочный файл 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, и KDevelop сразу же узнал, что, удалив красную подчеркивание под вторым оператором include в приведенном выше коде.

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

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

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

4b9b3361

Ответ 1

В вашем 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

Ответ 2

sudo apt-get install python2.7-dev

работал у меня в проблеме "Python.h: Нет такого файла или каталога"

Ответ 3

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

`python-config --cflags`

и это на линии ссылок:

`python-config --ldflags`

Ответ 4

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

dpkg -L python-dev | grep Python.h

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

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

EDIT:

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

Ответ 5

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

find / -iname python.h

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

-I python_h_path

Ответ 6

Для 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