我试图使用C扩展名文件构建共享库,但首先必须使用以下命令生成输出文件:

gcc -Wall utilsmodule.c -o Utilc

执行命令后,我收到以下错误消息:

> utilsmodule.c:1:20: fatal error: Python.h: No such file or directory
compilation terminated.

我已经在互联网上尝试了所有建议的解决方案,但问题仍然存在。我对Python.h没有问题。我设法在我的机器上找到了该文件。


当前回答

经确认,如果您正在运行centos 8+。您需要运行以下操作:

sudo yum -y install python36 python38 python39
sudo yum -y install python36-devel.x86_64 python38-devel.x86_64 python39-devel.x86_64

pip3.8 install cpython
pip3.9 install cpython
pip3.6 install cpython

其他回答

如果您在Amazon Linux上使用Python 3.6(基于RHEL,但此处给出的RHEL答案无效):

sudo yum install python36-devel

在我的例子中,在Ubuntu中修复它的方法是安装libpython-all-dev(如果您使用Python3,则安装libpypython3-all-dev)包。

在Ubuntu上,我运行的是Python 3,我必须安装

sudo apt-get install python3-dev

如果要使用未链接到python3的Python版本,请安装相关的python3.x-dev包。例如:

sudo apt-get install python3.5-dev

问题可能是您没有安装适当的Python库头。如果您使用Linux Solus,可以使用以下命令解决此问题:

sudo eopkg install python3-devel

有时,即使在安装python dev之后,错误仍然存在,如果缺少“gcc”,请检查错误。

第一次下载,如中所述https://stackoverflow.com/a/21530768/8687063,然后安装gcc

对于apt(Ubuntu、Debian…):

sudo apt-get install gcc

对于yum(CentOS,RHEL…):

sudo yum install gcc

对于dnf(Fedora…):

sudo dnf install gcc

对于zypper(openSUSE…):

sudo zypper in gcc

对于apk(Alpine…):

sudo apk gcc