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不包含头文件的问题。因此,我将相关文件夹添加到包含路径中,KDevelop 通过删除上面代码中第二个包含语句下方的红色下划线立即意识到这一点。

但是,问题仍然存在。我犯了同样的错误。希望你们能提供任何帮助或意见:-)

非常感谢。

编辑:我之前错过的一些细节是 KDevelop 正在为我的项目使用 cmake。我想我的问题发生的原因是因为 cmake 不知道适当的编译器和链接器路径。对于为 cmake 设置正确路径的任何帮助,我将不胜感激。

4

6 回答 6

64

在您的 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
于 2012-06-15T17:53:29.843 回答
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 回答
4

对于 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 
于 2015-09-08T09:28:51.200 回答
3

我假设它已经安装了。找到路径:

find / -iname python.h

当你这样做时,在编译时添加

-I python_h_path
于 2015-12-10T14:12:56.947 回答