치명적인 오류 :“python.h”파일이나 디렉토리가 없습니까?


10

헝가리 문제 에 대한 해결책을 찾는 동안 이 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

Stack Overflow 에서이 관련 질문을 찾았 지만 대답이 효과가 없었습니다.

나는 GitHub에 매우 익숙하다 g++. 에 모듈을 추가하는 방법을 모른다 . 누군가 나를 도울 수 있습니까? 다음에 무엇을해야합니까?


4
달리기 sudo apt-get install python-dev가 작동하지 않습니까?
Salem

그래, @Salem 그것은 나를 위해 일하지 않았다 ..
lazarus

답변:


11

보고 후 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을보십시오 .


libpython2.7-dev는 이미 최신 버전입니다.
나사로

1
@jazzz : 설치 했으므로 python-dev이제 libpython2.7-dev의존성이 python-dev있습니다. 문제가 해결되지 않습니까?
Sylvain Pineau

1
@jazz 여기에서 패키지 종속성을 확인할 수 있습니다 : packages.ubuntu.com/trusty/python-devpackages.ubuntu.com/trusty/libpython-dev
Sylvain Pineau

감사합니다 @Sylvain Pineau, 한편, 나는 stackoverflow.com/questions/11041299/…를 보았고 , 의견 중 하나에서 Python.h가 빌드 시스템의 포함 경로에 없을 가능성이 높습니다. dpkg -L python-dev |를 실행하여 Python.h의 위치를 ​​찾을 수 있습니다. grep Python.h 그리고 내 시스템에서 이것을 시도했을 때 nothig를 받고 있습니까 ??? anupam @ JAZZ : ~ / Python / hungarian-master $ dpkg -L python-dev | grep Python.h anupam @ JAZZ : ~ / Python / hungarian-master $ 어떻게 해결할 수 있습니까?
나사로

1
@jazzz 대신이 명령을 사용해보십시오 :dpkg-query -L libpython2.7-dev | grep Python.h
Sylvain Pineau

8

Ubuntu 15.10 및 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

이것은 C로 확장되는 파이썬 코드 입니다. 사용할 필요가 없습니다 make. 파이썬 자체는 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-numpy파이썬 스크립트가 필요로하지 않으면 설치해야한다고 언급 할 가치 가 있습니다.


고맙습니다 @souravc, 그것은 효과가 있었지만 $ python example.py를 실행하면 anupam @ JAZZ를 제공합니다 : ~ / Python / hungarian-master $ python example.py [1 2 0 4 5 3 7 6] 그러나 계산해야합니다. 순 할당 이익, 여기에 출력 hungarian.lap (a) [0]에 대한 출력이 제공됩니다.
나사로

1
@jazzz 헝가리어 문제에 대해 전혀 모른다. 나는 그들이 기본 코드 hungarian.cpp와 기본 기능을 실행하기위한 예제를 제공했다고 생각 합니다 eample.py. 더 필요한 경우 자신의 코드를 작성해야 할 수도 있습니다.
souravc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.