errore fatale: "python.h" nessun file o directory?


10

Mentre cercavo una soluzione al problema ungherese , ho trovato questo link GitHub .

Ho esaminato il readme.mdfile e ho eseguito tutto ciò che è descritto lì. Dopo aver copiato hungarian.sonella mia directory di lavoro, quando ho provato a compilare hungarian.cppusando make hungarian, ho ottenuto questo 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

Ho trovato questa domanda correlata su Stack Overflow , ma la risposta non ha funzionato per me.

Sono molto nuovo in GitHub e non so come aggiungere moduli g++. Qualcuno può aiutarmi con quello, e cosa fare dopo?


4
Quindi la corsa sudo apt-get install python-devnon ha funzionato?
Salem,

sì ,, @Salem non ha funzionato, per me ha funzionato ..
Lazzaro,

Risposte:


11

Dopo aver guardato https://github.com/hrldcpr/hungarian/blob/master/hungarian.cpp , sembra che tu abbia bisogno di entrambi:

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

Quindi installa i seguenti pacchetti:

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

Per identificare i pacchetti mancanti (quelli che forniscono le intestazioni), guarda pacchetti.ubuntu.com .


, Avevo installato anche questo ,,, libpython2.7-dev è già la versione più recente.
lazzaro,

1
@jazzz: Da quando hai installato python-devora hai libpython2.7-devuna dipendenza di python-dev. Problema risolto, no?
Sylvain Pineau,

1
@jazz Puoi controllare le dipendenze dei pacchetti qui: packages.ubuntu.com/trusty/python-dev e packages.ubuntu.com/trusty/libpython-dev
Sylvain Pineau,

Grazie @Sylvain Pineau ,, nel frattempo ho guardato stackoverflow.com/questions/11041299/… , e in uno dei commenti che ho ricevuto Molto probabilmente Python.h non è nel percorso di inclusione dei tuoi sistemi di build. Puoi scoprire dove si trova Python.h eseguendo dpkg -L python-dev | grep Python.h e quando l'ho provato sul mio sistema non ottengo niente ??? anupam @ JAZZ: ~ / Python / hungarian-master $ dpkg -L python-dev | grep Python.h anupam @ JAZZ: ~ / Python / hungarian-master $ come posso risolverlo ??
lazzaro,

1
@jazzz Prova invece con questo comando:dpkg-query -L libpython2.7-dev | grep Python.h
Sylvain Pineau,

8

Per Ubuntu 15.10 e 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

3

Questo è un codice pitone allungabile con C . Non c'è bisogno di usare make. Python stesso si occuperà della cppcompilazione del codice con flag adeguati.

Per prima cosa devi avere file di intestazione e una libreria statica. Installa quelli come,

sudo apt-get install python-dev

Ora segui questi comandi per eseguire il example.pytuo codice.

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

Nota: sto usando python2.7, dovresti occuparti della tua versione di Python quando esegui i comandi sopra. Vale la pena ricordare che è necessario installare python-numpyse non lo si ha come script Python ne ha bisogno.


Grazie @souravc, ha funzionato ma quando eseguo $ python example.py mi dà anupam @ JAZZ: ~ / Python / hungarian-master $ python example.py [1 2 0 4 5 3 7 6] ma devo calcolare il utile netto di assegnazione, qui sta dando output per print hungarian.lap (a) [0] ,, (che cos'è)?
lazzaro,

1
@jazzz Non ho idea del problema ungherese. Penso che abbiano fornito il codice di base hungarian.cppe un esempio per eseguirne alcune funzioni di base eample.py. Se hai bisogno di più potresti dover scrivere il tuo codice.
souravc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.