Не удалось найти файл Python.h на CentOS

Я пытаюсь скомпилировать расширение Python, написанное на C на машине CentOS. Я получаю

error: Python.h: No such file or directory

Он отлично работает на ubuntu, где у меня установлен python-dev с помощью apt-get.

Я попытался установить python-devel с помощью

yum install python-devel

но он уже установлен. Как исправить эту ошибку?

Ответ 1

В моей системе заголовочный файл Python.h находится на пути /usr/include/python2.6/. Поскольку по умолчанию этот путь не выполняется предварительным процессором, вы должны добавить его в список путей поиска. Это делается с помощью опции -I для компилятора, например:

$ gcc -I/usr/include/python2.6 source.c -o program

Измените путь выше на фактический путь в вашей системе. Вы можете найти его либо с помощью команды find, как предложено в комментарии, с locate, если он установлен.

Ответ 2

Если вы используете python3, вы можете установить python34-devel для этого

Он доступен на EPEL Repository и имеет пакет python34-devel доступно

Вы просто запускаете эту команду, чтобы установить ее

yum install python34-devel

Надеюсь, что это поможет

* note В настоящее время python34-devel является самой обновленной версией python 3

Ответ 3

Установите python3.4 (включая pip) и python3.4-dev на Centos6.X:

yum install http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python34u-3.4.2-1.ius.centos6.x86_64.rpm
yum install http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python34u-devel-3.4.2-1.ius.centos6.x86_64.rpm

Ответ 4

У меня была аналогичная проблема, где по умолчанию Python был 2,7, но pip работал против 3.4, и я хотел использовать 2.7. Итак, я сделал: yum remove python34-pip и yum install python2-pip. Решила!

Ответ 5

У меня тоже была похожая проблема.

./python/py_defines.h:39:20: фатальная ошибка: Python.h: нет такого файла или каталога

Тогда как команда find показала, что python.h существует.

Вышеуказанные решения не сработали, однако выполнение команды ниже сработало для меня.

yum install python27-python-devel.x86_64

Не сильно отличается, но потратил много времени.

Ответ 7

  • для CentOS 7.4
    • Python 3.6.6: yum -y install python36-devel
    • Python 2: yum -y install python-devel
  • для Ubuntu
    • Python 3.6: apt-get install libpython3.6-dev

Ответ 8

Сначала вы должны удалить оригинальный питон.

sudo yum remove python

Затем установите python-devel на

sudo yum install python-devel

Этот метод должен быть полезен.