致命的なエラー:「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はうまくいきませんでしたか?
セーラム

うん,,それはdidnの@Salem、tは...私のために働いた
ラザロ

回答:


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はすでに最新バージョンです。
lazarus 2014

1
@jazzz:あなたがインストールされているのでpython-dev、あなたが今持っているlibpython2.7-devだけでなく、それはの依存性ですpython-dev。問題は解決しましたか?
シルヴァンピノー2014

1
@jazzあなたはここでパッケージの依存関係を確認することができます。packages.ubuntu.com/trusty/python-devpackages.ubuntu.com/trusty/libpython-dev
シルヴァン・ピノー

ありがとう@Sylvain Pineau、その間、私はstackoverflow.com/questions/11041299/…を見て 、コメントの1つで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 $どうすれば解決できますか?
ラザロ2014

1
代わりに、このコマンドを使用して試してみてください@jazzz:dpkg-query -L libpython2.7-dev | grep Python.h
シルヴァン・ピノー

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で拡張された pythonコードです。使用する必要はありません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-numpypythonスクリプトがそれを必要とするので、それがない場合はインストールする必要があることに言及する価値があります。


@souravcよりもうまくいきましたが、$ python example.pyを実行すると、anupam @ JAZZ:〜/ Python / hungarian-master $ python example.py [1 2 0 4 5 3 7 6]が得られますが、正味割り当て利益、ここではprint hungarian.lap(a)[0]の出力を提供しています(これは何ですか)?
ラザロ2014

1
@jazzz私はハンガリーの問題について何も知りません。彼らは基本的なコードhungarian.cppと、その基本的な機能を実行するための例を提供していると思いますeample.py。さらに必要な場合は、独自のコードを記述する必要があります。
souravc 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.