16

While looking for a solution for the Hungarian problem, I found this GitHub link.

I went through the readme.md file and I performed everything described there. After copying hungarian.so into my working directory, when I tried to compile hungarian.cpp using make hungarian, I got this output:

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

I found this related question on Stack Overflow, but the answer didn't work for me.

I am very new to GitHub I don't know how to add modules on g++. Can someone help me with that, and what to do next?

2
  • 4
    So running sudo apt-get install python-dev did not work?
    – Salem
    Commented Sep 21, 2014 at 14:35
  • yeah ,, @Salem it didn,t worked for me..
    – lazarus
    Commented Sep 21, 2014 at 14:46

3 Answers 3

20

For Python 3:

sudo apt-get install python-dev python3-dev

You can also install it for specific versions of Python (if available for your version of Ubuntu, or from a PPA):

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

The python3-dev package depends on a python3.x-dev package, (where 3.x is the system version of Python) and on the libpython3-dev package, which in turn depends on a corresponding libpython3.x-dev package.

1
14

After looking at https://github.com/hrldcpr/hungarian/blob/master/hungarian.cpp, it seems that you need both:

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

So install the following packages:

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

To identify the missing packages (the ones providing the headers), look at packages.ubuntu.com.

9
  • ,I had this too installed ,,,libpython2.7-dev is already the newest version.
    – lazarus
    Commented Sep 21, 2014 at 14:49
  • 1
    @jazzz: Since you installed python-dev you now have libpython2.7-dev as well as it's a dependency of python-dev. Problem solved isn't it? Commented Sep 21, 2014 at 14:51
  • 1
    @jazz You can check the packages dependencies here: packages.ubuntu.com/trusty/python-dev and packages.ubuntu.com/trusty/libpython-dev Commented Sep 21, 2014 at 14:54
  • Thanx @Sylvain Pineau ,,well meanwhile I looked at stackoverflow.com/questions/11041299/… ,and in one of the comment I got Most likely Python.h is not in your build systems' include path. You can find out where your Python.h is by running dpkg -L python-dev | grep Python.h and when I tried this on my system I am getting nothig??? anupam@JAZZ:~/Python/hungarian-master$ dpkg -L python-dev | grep Python.h anupam@JAZZ:~/Python/hungarian-master$ how can I resolve it??
    – lazarus
    Commented Sep 21, 2014 at 15:42
  • 1
    @jazzz Try with this command instead: dpkg-query -L libpython2.7-dev | grep Python.h Commented Sep 21, 2014 at 15:58
4

This is python code extending with C. No need to use make. Python itself will take care of the cpp code compilation with proper flags.

First you need to have header files and a static library. Install those as,

sudo apt-get install python-dev

Now follow these commands to execute example.py in your code.

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

Note: I am using python2.7, you should take care of your version of python when execute the above commands. It is worth mentioning that you need to install python-numpy if you not have it as python script need it.

2
  • Thanx @souravc ,it worked but when I run $python example.py it gives me anupam@JAZZ:~/Python/hungarian-master$ python example.py [1 2 0 4 5 3 7 6] but I need to calculate the net Assignment profit,, here it is giving output for print hungarian.lap(a)[0],, (what is this)?
    – lazarus
    Commented Sep 21, 2014 at 15:00
  • 1
    @jazzz I have no idea about hungarian problem. I think they have provided the basic code hungarian.cpp and an example to execute some basic function of it in eample.py. If you need more you might have to write your own code.
    – sourav c.
    Commented Sep 21, 2014 at 15:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .