首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python.h:没有这样的文件或目录

Python.h:没有这样的文件或目录
EN

Stack Overflow用户
提问于 2012-06-15 05:02:38
回答 5查看 74.7K关注 0票数 40

我最近在运行Ubuntu12.04LTS的Macbook Pro上安装了用于C++开发的KDevelop 4。

我想在我的C++代码中嵌入Python应用程序。为此,需要包含Python.h头文件。所以我就这么做了。

代码语言:javascript
复制
#include <iostream>
#include <Python.h>

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

但是,在运行时,我收到了来自IDE的以下响应:

代码语言:javascript
复制
fatal error: Python.h: No such file or directory

然而,我很快就发现了这个问题。我还没有下载python-dev包。所以我就这么做了。我再次运行,但同样的错误再次出现。所以,我认为这一定是KDevelop没有包含头文件的问题。因此,我将相关文件夹添加到include路径中,KDevelop通过删除上面代码中第二个include语句下面的红色下划线立即识别出了这一点。

但问题仍然存在。我得到了同样的错误。非常感谢你们能提供的任何帮助或意见:-)

非常感谢。

编辑:我之前没有提到的一些细节是,KDevelop在我的项目中使用了cmake。我猜我的问题发生的原因是因为cmake不知道适当的编译器和链接器路径。如果能帮助我为cmake设置正确的路径,我将不胜感激。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-16 01:53:30

在您的CMakeLists.txt中,尝试添加以下内容:

代码语言:javascript
复制
find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
target_link_libraries(<your exe or lib> ${PYTHON_LIBRARIES})

有关这些命令的详细信息,请运行:

代码语言:javascript
复制
cmake --help-module FindPythonLibs
cmake --help-command find_package
cmake --help-command include_directories
cmake --help-command target_link_libraries
票数 58
EN

Stack Overflow用户

发布于 2012-06-15 05:09:17

您希望在编译行中包含以下内容:

代码语言:javascript
复制
`python-config --cflags`

在链接行上是这样的:

代码语言:javascript
复制
`python-config --ldflags`
票数 14
EN

Stack Overflow用户

发布于 2012-06-15 05:09:04

Python.h很可能不在构建系统的包含路径中。您可以通过运行以下命令找出Python.h在哪里

代码语言:javascript
复制
dpkg -L python-dev | grep Python.h

这还将验证python-dev包是否实际安装了Python.h。

我这里没有kdevelop,但大多数IDE都有一个设置,您可以在其中指定构建系统使用的include路径,并且您应该能够添加Python.h所在的路径。

编辑:

正如Nikolai所暗示的,您还需要为链接阶段添加正确的库路径。( python-config --ldflag的输出)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11041299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档