协慌网

登录 贡献 社区

致命错误:Python.h:没有这样的文件或目录

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

gcc -Wall utilsmodule.c -o Utilc

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

utilsmodule.c:1:20:致命错误:Python.h:没有这样的文件或目录编译终止。

事实上我已经通过互联网尝试了所有建议的解决方案,但问题仍然存在... 我也没有Python.h问题。我设法在我的机器上找到该文件...... 任何人在遇到同样的问题之前?

答案

看起来你没有正确安装 python dev 的头文件和静态库。使用包管理器在系统范围内安装它们。

对于aptUbuntu,Debian ...... ):

sudo apt-get install python-dev   # for python2.x installs
sudo apt-get install python3-dev  # for python3.x installs

对于yumCentOS,RHEL ...... ):

sudo yum install python-devel   # for python2.x installs
sudo yum install python34-devel   # for python3.4 installs

对于dnfFedora ...... ):

sudo dnf install python2-devel  # for python2.x installs
sudo dnf install python3-devel  # for python3.x installs

对于zypperopenSUSE ... ):

sudo zypper in python-devel   # for python2.x installs
sudo zypper in python3-devel  # for python3.x installs

对于apk阿尔卑斯山... ):

# This is a departure from the normal Alpine naming
# scheme, which uses py2- and py3- prefixes
sudo apk add python2-dev  # for python2.x installs
sudo apk add python3-dev  # for python3.x installs

对于apt-cygCygwin ...... ):

apt-cyg install python-devel   # for python2.x installs
apt-cyg install python3-devel  # for python3.x installs

在 Ubuntu 上,我运行的是 Python 3,我不得不安装

sudo apt-get install python3-dev

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

sudo apt-get install python3.5-dev

你需要做的两件事。

安装 Python 的开发包,如果是 Debian / Ubuntu / Mint,则使用命令完成:

sudo apt-get install python-dev

第二件事是包含文件默认情况下不包含在 include 路径中,默认情况下 Python 库也不与可执行文件链接。您需要添加这些标志(相应地替换 Python 的版本):

-I/usr/include/python2.7 -lpython2.7

换句话说,你的编译命令应该是:

gcc -Wall -I/usr/include/python2.7 -lpython2.7  utilsmodule.c -o Utilc