32

我正在尝试在 CentOS 机器上编译用 C 编写的 Python 扩展。我正进入(状态

error: Python.h: No such file or directory

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

我尝试使用安装 python-devel

yum install python-devel

但它已经安装了。如何修复此错误?

4

8 回答 8

39

如果你使用 python3 你可以为此安装 python34-devel

它在EPEL Repository上可用,并且有python34-devel 包可用

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

yum install python34-devel

希望有帮助

*注意此时python34-devel是python 3.4的最新版本

于 2015-10-11T07:02:15.373 回答
16

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

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

将上面的路径更改为系统上的实际路径。您可以使用find评论中建议的locate命令或已安装的命令找到它。

于 2012-09-12T06:06:04.897 回答
11
  • 为了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
于 2019-05-09T07:07:47.383 回答
0

在 Centos6.X 上安装python3.4(包括 pip)和软件包: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
于 2014-11-25T06:34:04.983 回答
0

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

于 2017-06-04T11:37:48.540 回答
0

对于 centos 8+

dnf install -y python3-devel
于 2021-02-18T10:47:12.103 回答
0

我也有类似的问题。

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

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

上述解决方案不起作用,但以下命令执行对我有用。

yum install python27-python-devel.x86_64

没什么不同,但浪费了很多时间。

于 2018-06-12T11:45:37.840 回答
0

这取决于您拥有的 Python!

你需要一个dev包,你拥有的 Python XXX 的版本 XXX,你可以在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

于 2018-09-21T08:18:46.157 回答