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

Я недавно установил 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. Таким образом, я добавил соответствующую папку в путь включения, и KDevelop сразу распознал это, удалив красное подчеркивание под вторым оператором включения в приведенном выше коде.

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

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

РЕДАКТИРОВАТЬ: Некоторые детали, которые я упустил упомянуть ранее, это то, что KDevelop использует cmake для моего проекта. Я предполагаю, что причина моей проблемы в том, что cmake не знает подходящих путей компилятора и компоновщика. Я был бы признателен за любую помощь в установке правильных путей для cmake.

 ddzialak14 июн. 2012 г., 23:08
 Shubham Goyal14 июн. 2012 г., 23:19
@ddzialak - Да, я посмотрел на этот вопрос, прежде чем задавать этот. Причина, по которой этот вопрос мне не помог, заключается в том, что мой файл Python.h фактически присутствует в /usr/include/python2.7. Я вручную проверил это, и когда я нажимаю на Python.h в редакторе, он открывает файл.
 mayooran23 июл. 2015 г., 05:41
@ShubhamGoyal ты можешь мне помочь с этим?stackoverflow.com/questions/31577539/…

Ответы на вопрос(6)

Решение Вопроса

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
 Shubham Goyal15 июн. 2012 г., 22:11
Вот ссылка на мой файл CMakeLists.txt -paste.ubuntu.com/1042894
 05 авг. 2018 г., 09:34
Как насчет--ldflags?
 Shubham Goyal15 июн. 2012 г., 22:09
Да, это сработало. На самом деле, я заставил его работать до того, как увидел ваш ответ и после долгих чтений на CMake, но решение остается тем же: D
 23 июл. 2015 г., 05:40
@Fraser У меня похожий вопрос. Можете ли вы помочь мне с этим.stackoverflow.com/questions/31577539/…
 15 июн. 2012 г., 23:08
@ShubhamGoyal Хороший. На самом деле просмотр вашего CMakeLists.txt заставил меня заметить, что я забыл набор скобок в своем первоначальном ответе! Исправлено сейчас.
sudo apt-get install python2.7-dev

Python.h: такого файла или каталога не было & quot; вопрос

 26 окт. 2013 г., 20:52
Подтверждено, что все еще работает над тестированием Debian по состоянию на 26.10.13.
 01 апр. 2014 г., 23:04
Вот что помогло мне в CentOS:sudo yum search python чтобы найти подходящий пакет, тоsudo yum install python26-devel.x86_64 для моей конкретной версии Python.

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

затем скомпилируйте

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

затем запустите

./check 

find / -iname python.h

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

-I python_h_path

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

dpkg -L python-dev | grep Python.h

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

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

РЕДАКТИРОВАТЬ:

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

 Shubham Goyal15 июн. 2012 г., 02:54
Я подтвердил, что пакет python-dev установил файлы Python.h. Проблема в том, что я не знаю, где и как добавить правильные пути к библиотекам в cmake. Буду признателен за любую помощь в этом направлении. Я полный новичок в cmake. Впервые я услышал термин после публикации этого вопроса.

`python-config --cflags`

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

`python-config --ldflags`
 15 июн. 2012 г., 04:37
Извините, я не помогу с этим. Лучшее, что я могу, это направить вас кuserbase.kde.org/KDevelop4/Manual/…
 14 июн. 2012 г., 23:38
Ваша IDE где-то имеет настройки для включения путей, путей к библиотекам и флагов компилятора и компоновщика. Запустите команды выше - первый дает вам-I директивы (включая пути) и флаги компилятора, второй делает то же самое для компоновщика. Поместите их в соответствующие настройки в вашей IDE.
 Shubham Goyal15 июн. 2012 г., 02:49
Хм ... KDevelop использует cmake для моего проекта. Но я никогда не использовал cmake раньше и был бы признателен за помощь в определении путей.
 Shubham Goyal14 июн. 2012 г., 23:24
Извините, если я здесь нуб, но не могли бы вы пояснить, что вы подразумеваете под строкой компиляции и строкой ссылок в этом случае? Так как я использую IDE, я не собираю и не связываю на терминале.
 16 нояб. 2018 г., 05:32
Это помогло мне на Fedora 27.python-config не был установлен, но Fedora знала о команде и спросила, хочу ли я установить ее. После установки его также установилиPython.h! Пакеты, которые решили обе потребностиpython2-devel и некоторые пакеты, связанные с RPM (python-rpm-macros, python2-rpm-macros, а такжеpython3-rpm-generators).

Ваш ответ на вопрос