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

6qfn3psc  于 12个月前  发布在  Python
关注(0)|答案(6)|浏览(172)

我最近在运行Ubuntu 12.04 LTS的Macbook Pro上安装了KDevelop 4用于C开发。
我想在我的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。

p1tboqfb

p1tboqfb1#

在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
ggazkfy8

ggazkfy82#

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:没有这样的文件或目录”问题

6rqinv9w

6rqinv9w3#

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

`python-config --cflags`

在链接线上是这样的:

`python-config --ldflags`
46scxncf

46scxncf4#

很可能Python.h不在您的构建系统的包含路径中。您可以通过运行以下命令找到您的Python.h所在的位置:

dpkg -L python-dev | grep Python.h

这还将验证python-dev包是否实际安装了Python.h。
我这里没有kdevelop,但大多数IDE都有一个设置,可以在其中指定构建系统使用的包含路径,并且您应该能够添加Python. h所在的路径。
编辑:
正如Nikolai所暗示的,您还需要为链接阶段添加正确的库路径。(python-config --ldflags的输出)。

fsi0uk1n

fsi0uk1n5#

对于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
sycxhyv7

sycxhyv76#

我想它已经安装好了。查找路径:

find / -iname python.h

当你这样做的时候,在编译add的时候,

-I python_h_path

相关问题