web-dev-qa-db-ja.com

致命的なエラー: "python.h"ファイルまたはディレクトリがありませんか?

ハンガリーの問題 の解決策を探していると、 この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++にモジュールを追加する方法がわかりません。誰かがそれを手伝ってくれますか?

8
lazarus

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 を見てください。

8
Sylvain Pineau

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
8
Martin Thoma

これは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をインストールする必要があることに言及する価値があります。

2
souravc