在CentOS上找不到Python.h文件

时间:2012-09-12 01:00:26

标签: python c centos

我正在尝试在CentOS机器上编译用C编写的Python扩展。我正在

error: Python.h: No such file or directory

它在ubuntu上运行正常,我使用apt-get安装了python-dev。

我尝试使用

安装python-devel
yum install python-devel

但它已经安装好了。如何解决此错误?

9 个答案:

答案 0 :(得分:22)

如果你使用python3你可以为那个

安装python34-devel

可在EPEL Repository上使用,并且python34-devel package可用

您只需运行此命令即可安装

yum install python34-devel

希望有所帮助

* note 此时python34-devel是python 3的最新版本

答案 1 :(得分:8)

在我的系统上,Python.h标头文件位于路径/usr/include/python2.6/中。由于默认情况下预处理器不会搜索此路径,因此您必须将其添加到要搜索的路径列表中。这是通过编译器的-I选项完成的,如下所示:

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

将上面的路径更改为系统上的实际路径。您可以使用注释中建议的find命令找到它,如果已安装locate命令,则可以找到它。

答案 2 :(得分:0)

安装python3.4(包括点子)& Centos6.X上的python3.4-dev个包:

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

答案 3 :(得分:0)

我有一个类似的问题,默认Python是2.7,但是pip是针对3.4运行的,我想使用2.7。所以我做了:yum remove python34-pipyum install python2-pip。解决了!

答案 4 :(得分:0)

我也有类似的问题。

  

./ python / py_defines.h:39:20:致命错误:Python.h:没有这样的文件或   目录

而find命令显示python.h存在。

上述解决方案无效,但以下命令执行对我有用。

yum install python27-python-devel.x86_64

没有太大的不同,但浪费了很多时间。

答案 5 :(得分:0)

这取决于您拥有的Python!

您需要一个dev程序包,即拥有适用于Python X.X.X的X.X.X版本,您可以在https://centos.pkgs.org/7/ius-x86_64上进行搜索。

例如,如果您拥有IUS的Python 3.6.5,则需要安装https://centos.pkgs.org/7/ius-x86_64/python36u-devel-3.6.5-1.ius.centos7.x86_64.rpm.html

答案 6 :(得分:0)

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

答案 7 :(得分:0)

centos 8+

dnf install -y python3-devel

答案 8 :(得分:-4)

你应该先删除原始的python。

sudo yum remove python

然后按

安装python-devel
sudo yum install python-devel

这种方法应该很有用。