Lỗi nghiêm trọng: Mah python.h không có tập tin hoặc thư mục?


10

Trong khi tìm kiếm một giải pháp cho vấn đề Hungary , tôi đã tìm thấy liên kết GitHub này .

Tôi đã xem qua các readme.mdtập tin và tôi thực hiện mọi thứ được mô tả ở đó. Sau khi sao chép hungarian.sovào thư mục làm việc của tôi, khi tôi cố gắng biên dịch hungarian.cppbằng cách sử dụng make hungarian, tôi đã nhận được kết quả này:

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

Tôi đã tìm thấy câu hỏi liên quan này trên Stack Overflow , nhưng câu trả lời không phù hợp với tôi.

Tôi rất mới với GitHub Tôi không biết cách thêm mô-đun vào g++. Ai đó có thể giúp tôi với điều đó, và phải làm gì tiếp theo?


4
Vì vậy, chạy sudo apt-get install python-devkhông hoạt động?
Salem

yeah ,, @Salem nó đã không làm việc cho tôi ..
lazarus

Câu trả lời:


11

Sau khi xem https://github.com/hrldcpr/hungarian/blob/master/hungarian.cpp , có vẻ như bạn cần cả hai:

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

Vì vậy, cài đặt các gói sau:

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

Để xác định các gói bị thiếu (những gói cung cấp tiêu đề), hãy xem các gói.ubfox.com .


, Tôi đã cài đặt quá ,,, libpython2.7-dev đã là phiên bản mới nhất.
lazarus

1
@jazzz: Vì bạn đã cài đặt python-devnên giờ bạn libpython2.7-devcũng có sự phụ thuộc python-dev. Vấn đề được giải quyết phải không?
Sylvain Pineau

1
@jazz Bạn có thể kiểm tra các gói phụ thuộc ở đây: packages.ubuntu.com/trusty/python-devpackages.ubuntu.com/trusty/libpython-dev
Sylvain Pineau

Thanx @Sylvain Pineau ,, tốt trong khi đó tôi nhìn stackoverflow.com/questions/11041299/... , và trong một trong những nhận xét tôi có Nhiều khả năng Python.h không có trong hệ thống xây dựng của bạn bao gồm đường dẫn. Bạn có thể tìm ra Python.h của bạn ở đâu bằng cách chạy dpkg -L python-dev | grep Python.h và khi tôi thử cái này trên hệ thống của mình thì tôi không nhận được ??? anupam @ JAZZ: ~ / Python / Cameron-master $ dpkg -L python-dev | grep Python.h anupam @ JAZZ: ~ / Python / Cameron-master $ làm thế nào tôi có thể giải quyết nó ??
lazarus

1
@jazzz Thay vào đó hãy thử với lệnh này:dpkg-query -L libpython2.7-dev | grep Python.h
Sylvain Pineau

8

Đối với Ubuntu 15.10 và 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

Đây là mã python mở rộng với C . Không cần sử dụng make. Bản thân Python sẽ đảm nhiệm việc cppbiên dịch mã với các cờ thích hợp.

Trước tiên, bạn cần phải có các tệp tiêu đề và một thư viện tĩnh. Cài đặt những cái như,

sudo apt-get install python-dev

Bây giờ hãy làm theo các lệnh này để thực thi example.pymã của bạn.

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

Lưu ý: Tôi đang sử dụng python2.7, bạn nên chăm sóc phiên bản python của mình khi thực hiện các lệnh trên. Điều đáng nói là bạn cần cài đặt python-numpynếu bạn không có nó như kịch bản python cần nó.


Thanx @souravc, nó hoạt động nhưng khi tôi chạy $ python example phút Lợi nhuận chuyển nhượng ròng ,, ở đây nó đang cho đầu ra cho bản in.l.l.l (a) [0] ,, (đây là gì)?
lazarus

1
@jazzz Mình không có ý kiến ​​gì về vấn đề của Lynn. Tôi nghĩ rằng họ đã cung cấp mã cơ bản hungarian.cppvà một ví dụ để thực thi một số chức năng cơ bản của nó eample.py. Nếu bạn cần nhiều hơn, bạn có thể phải viết mã của riêng bạn.
souravc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.