En cherchant une solution pour le problème hongrois , j'ai trouvé ce lien GitHub .
J'ai parcouru le fichier readme.md
et j'ai exécuté tout ce qui y était décrit. Après avoir copié hungarian.so
dans mon répertoire de travail, lorsque j'ai essayé de compiler hungarian.cpp
à l'aide de make hungarian
, j'ai obtenu ce résultat:
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
J'ai trouvé cette question connexe sur Stack Overflow , mais la réponse n'a pas fonctionné pour moi.
Je suis très nouveau sur GitHub, je ne sais pas comment ajouter des modules sur g++
. Quelqu'un peut-il m'aider avec ça, et quoi faire ensuite?
Après avoir consulté https://github.com/hrldcpr/hungarian/blob/master/hungarian.cpp , il semble que vous ayez besoin des deux:
#include "Python.h"
#include "numpy/arrayobject.h"
Alors installez les paquets suivants:
Sudo apt-get install libpython2.7-dev python-numpy
Pour identifier les paquets manquants (ceux fournissant les en-têtes), regardez packages.ubuntu.com .
Pour Ubuntu 15.10 et Python 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
C'est python code avec C . Pas besoin d'utiliser make
. Python lui-même se chargera de la compilation du code cpp
avec les indicateurs appropriés.
Vous devez d’abord disposer de fichiers d’en-tête et d’une bibliothèque statique. Installez ces comme,
Sudo apt-get install python-dev
Suivez maintenant ces commandes pour exécuter example.py
dans votre code.
python setup.py build
cp build/lib.linux-i686-2.7/hungarian.so .
python example.py
Remarque: J'utilise
python2.7
, vous devez prendre soin de votre version de python lorsque vous exécutez les commandes ci-dessus. Il est à noter que vous devez installerpython-numpy
si vous ne le possédez pas car le script pyhton en a besoin.