При поиске решения для венгерской проблемы я нашел эту ссылку 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
Я нашел этот связанный вопрос на Переполнении стека, но ответ не работал на меня.
Я очень плохо знаком с GitHub, который я не знаю, как включить модули g++
. Кто-то может помочь мне с этим, и что сделать затем?
После рассмотрения 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 .
Для Ubuntu 15.10 и питона 3:
sudo apt-get install python-dev
sudo apt-get install python3-dev
sudo apt-get install libpython3-dev
sudo apt-get install libpython3.4-dev
sudo apt-get install libpython3.5-dev
Это - код Python расширение с помощью C. Никакая потребность использовать make
. Сам Python будет заботиться о 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 нужен он.