43

最近、Ubuntu 12.04 LTS を実行している Macbook Pro に C++ 開発用の KDevelop 4 をインストールしました。

C++ コードに Python アプリケーションを埋め込みたい。そのためには、Python.h ヘッダー ファイルをインクルードする必要があります。それで、私はそれをしました。

#include <iostream>
#include <Python.h>

int main(int argc, char **argv) {
    Py_Initialize();
    return 0;
}

ただし、実行すると、IDE から次の応答を受け取りました。

fatal error: Python.h: No such file or directory

しかし、問題はすぐに見つかりました。python-dev パッケージをダウンロードしていませんでした。それで、私はそれをしました。もう一度実行しましたが、同じエラーが再び発生しました。そのため、ヘッダー ファイルが KDevelop に含まれていないことに問題があるに違いないと考えました。したがって、関連するフォルダーをインクルード パスに追加すると、上記のコードの 2 番目のインクルード ステートメントの下にある赤い下線を削除することで、KDevelop はすぐにそれを認識しました。

しかし、それでも問題は残ります。同じエラーが発生します。皆さんが提供できる助けや情報をいただければ幸いです:-)

どうもありがとう。

編集: 以前に言及しなかった詳細のいくつかは、KDevelop が私のプロジェクトに cmake を使用していることです。私の問題が発生している理由は、cmake が適切なコンパイラとリンカーのパスを認識していないためだと思います。cmakeの正しいパスを設定する際に助けていただければ幸いです。

4

6 に答える 6

49
sudo apt-get install pythonX.X-dev

たとえば3.8の場合

sudo apt-get install python3.8-dev

コメントをありがとうCristianjs19。

元の回答:

sudo apt-get install python2.7-dev

「Python.h:そのようなファイルやディレクトリはありません」の問題で私のために働いた

于 2013-02-11T11:13:26.047 に答える
14

コンパイル行に次を含めます。

`python-config --cflags`

そしてこれはリンク行にあります:

`python-config --ldflags`
于 2012-06-14T21:09:16.530 に答える
4

ほとんどPython.hの場合、ビルド システムのインクルード パスにありません。を実行すると、Python.h の場所を確認できます。

dpkg -L python-dev | grep Python.h

これにより、python-dev パッケージが実際に Python.h をインストールしたことも確認されます。

ここには kdevelop はありませんが、ほとんどの IDE には、ビルド システムで使用されるインクルード パスを指定できる設定があり、そこに Python.h があるパスを追加できるはずです。

編集:

Nikolai が暗示したように、リンク段階の正しいライブラリ パスも追加する必要があります。(python-config --ldflags の出力)。

于 2012-06-14T21:09:03.557 に答える