在寻找解决方案的同时匈牙利问题, 我发现此 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 脚本需要它。