web-dev-qa-db-ja.com

Python.h:そのようなファイルまたはディレクトリはありません

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に含まれていないという問題だと思いました。したがって、関連するフォルダーをインクルードパスに追加し、KDevelopは上記のコードの2番目のincludeステートメントの下にある赤い下線を削除することですぐに認識しました。

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

どうもありがとう。

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

26
Shubham Goyal

CMakeLists.txtで、次を追加してみてください。

find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
target_link_libraries(<your exe or lib> ${PYTHON_LIBRARIES})

コマンドの詳細については、次を実行してください。

cmake --help-module FindPythonLibs
cmake --help-command find_package
cmake --help-command include_directories
cmake --help-command target_link_libraries
36
Fraser
Sudo apt-get install python2.7-dev

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

28
Dimitris Baltas

コンパイル行に次を含める必要があります。

`python-config --cflags`

そして、これはリンク行で:

`python-config --ldflags`
11

最も可能性が高い Python.hは、ビルドシステムのインクルードパスにありません。 Python.hがどこにあるかを調べるには、次を実行します。

dpkg -L python-dev | grep Python.h

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

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

編集:

ニコライが暗示しているように、リンクステージの正しいライブラリパスも追加する必要があります。 (python-config --ldflagsの出力)。

4
niko

Linux Ubuntu PuTTYユーザーの場合:

Sudo apt-get update
Sudo apt-get install python-dev

それをコンパイルします

gcc -o check xyz.c -I/usr/include/python2.7/ -lpython2.7

それを実行します

./check 
1
chhotu sardar