Если при компиляции программы вы получаете ошибку, что отсутствует файл Python.h, то необходимо установить дополнительный пакет.
Вам нужно обратить внимание, какая версия Python используется для компиляции программы: 2.x или 3.x. Файлы заголовков помещены в различные пакеты для этих версий, поэтому вам нужно установить правильный пакет, в соответствии с используемой при компиляции версией Python. В большинстве популярных дистрибутивов требуемый пакет имеется в стандартном репозитории, поэтому установка выполняется в одну команду.
Текст ошибки может чуть различаться, в зависимости от того, в каком файле она возникла. Примеры сообщений:
url/url.cpp:4:10: fatal error: Python.h: Нет такого файла или каталога
#include "Python.h"
^~~~~~~~~~
compilation terminated.
error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
Ещё одно:
utilsmodule.c:1:20: fatal error: Python.h: No such file or directory compilation terminated.
Самой вероятной причиной этого является то, что не установлены файлы заголовка и статичных библиотек для python dev. Для установки их на системном уровне используйте менеджер пакетов для вашего дистрибутива.
Для apt (Ubuntu, Debian, Kali Linux, Linux Mint...):
Если программа компилируется для python2.x, то выполните команду:
sudo apt install python-dev
Если программа компилируется для python3.x, то выполните команду:
sudo apt install python3-dev
Для yum (CentOS, RHEL...):
Для python2.x:
sudo yum install python-devel
Для python3.4:
sudo yum install python34-devel
Если вам нужно установить для других версий Python, то замените цифры на нужные, например:
sudo yum install python36u-devel
Для dnf (Fedora...):
Для python2.x:
sudo dnf install python2-devel
Для python3.x:
sudo dnf install python3-devel
Для zypper (openSUSE...):
Для python2.x:
sudo zypper in python-devel
Для python3.x:
sudo zypper in python3-devel
Если после установки заголовков проблема не исчезла, то возможно, что вы выбрали неверную версию Python.
