zaLinux.ru

Решение проблемы с ошибкой «fatal error: Python.h: Нет такого файла или каталога»


Если при компиляции программы вы получаете ошибку, что отсутствует файл 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.


Рекомендуемые статьи:

2 Комментарии

  1. Анон

    А в винде как?

    1. Alexey (Автор записи)

      Кажется, для Windows нет пакета python-dev. Но установщик Python для Windows обычно устанавливает подкаталог внутри основного каталога Python.

      Итак, с Python в C:\Python вы получите:

      • C:\Python
      • C:\Python\DLLs
      • C:\Python\Doc
      • C:\Python\include
      • C:\Python\Lib
      • C:\Python\libs
      • C:\Python\Scripts
      • C:\Python\tcl
      • C:\Python\Tools

      Внутри каталога include вы найдёте Python.h, который можно включить или на который можно сослаться.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *