ハンガリーの問題 の解決策を探していると、 この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++
にモジュールを追加する方法がわかりません。誰かがそれを手伝ってくれますか?
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 を見てください。
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
これはpython code 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のバージョンに注意する必要があります。 pyhtonスクリプトが必要とするので、python-numpy
をインストールする必要があることに言及する価値があります。