Не удалось найти файл 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
Не сильно отличается, но потратил много времени.
Ответ 6
Это зависит от Питона, который у вас есть!
Вам нужен пакет dev
, версия XXX для Python XXX у вас есть, вы можете искать на https://centos.pkgs.org/7/ius-x86_64.
Например, если у вас есть Python 3.6.5 от IUS, вам нужно установить https://centos.pkgs.org/7/ius-x86_64/python36u-devel-3.6.5-1.ius.centos7.x86_64.rpm HTML
Ответ 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
Этот метод должен быть полезен.