致命错误:“python.h”没有文件或目录?

致命错误:“python.h”没有文件或目录?

在寻找解决方案的同时匈牙利问题, 我发现此 GitHub 链接

我浏览了readme.md文件并执行了其中描述的所有操作。复制hungarian.so到我的工作目录后,当我尝试hungarian.cpp使用进行编译时make hungarian,我得到了以下输出:

anupam@JAZZ:~/Python/hungarian-master$ make hungarian
g++     hungarian.cpp   -o hungarian
hungarian.cpp:7:20: fatal error: Python.h: No such file or directory
 #include "Python.h"
                    ^
compilation terminated.
make: *** [hungarian] Error 1

我发现Stack Overflow 上的这个相关问题,但答案对我来说不起作用。

我对 GitHub 还很陌生,不知道如何在 上添加模块g++。有人能帮我吗?下一步该怎么做?

答案1

对于 Python 3:

sudo apt-get install python-dev python3-dev

您还可以为特定版本的 Python 安装它(如果适用于您的 Ubuntu 版本,或来自 PPA):

sudo apt-get install python3.4-dev
sudo apt-get install python3.5-dev

python3-dev包依赖于一个python3.x-dev包(其中 3.x 是 Python 的系统版本),并且依赖于该libpython3-dev包,而该包又依赖于相应的libpython3.x-dev包。

答案2

看过之后https://github.com/hrldcpr/hungarian/blob/master/hungarian.cpp,看来你需要两者:

#include "Python.h"
#include "numpy/arrayobject.h"

因此安装以下软件包:

sudo apt-get install libpython2.7-dev python-numpy

要识别缺失的包(提供标头的包),请查看packages.ubuntu.com

答案3

这是 Python 代码使用 C 进行扩展。无需使用。Python 本身将使用适当的标志make来处理代码编译。cpp

首先,你需要有头文件和静态库。安装它们的方式如下:

sudo apt-get install python-dev

example.py现在按照这些命令在你的代码中执行。

python setup.py build
cp  build/lib.linux-i686-2.7/hungarian.so .
python example.py

笔记:我使用的是python2.7,执行上述命令时,请注意你的 python 版本。值得一提的是,python-numpy如果你没有安装它,则需要安装,因为 python 脚本需要它。

相关内容