ข้อผิดพลาดร้ายแรง:“ 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 มัน didn, เสื้อทำงานสำหรับฉัน ..
ลาซารัส

คำตอบ:


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-devและpackages.ubuntu.com/trusty/libpython-dev
Sylvain Pineau

Thanx @Sylvain Pineau ในขณะเดียวกันฉันดูstackoverflow.com/questions/11041299/ และในความคิดเห็นที่ฉันได้รับ Python.h ส่วนใหญ่ไม่ได้อยู่ในพา ธ การรวมระบบของคุณ คุณสามารถค้นหาว่า Python.h ของคุณอยู่ที่ใดโดยการเรียกใช้ dpkg -L python-dev | grep Python.h และเมื่อฉันลองมันในระบบของฉันฉันจะไม่ได้ ??? 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


3

นี่คือรหัสหลามขยายกับ 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ถ้าคุณไม่ได้มันเป็นสคริปต์หลามต้องการ


Thanx @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.