web-dev-qa-db-fra.com

erreur fatale: "python.h" pas de fichier ou de répertoire?

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?

8
lazarus

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 .

8
Sylvain Pineau

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
8
Martin Thoma

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 installer python-numpy si vous ne le possédez pas car le script pyhton en a besoin.

2
souravc