11

我正在尝试ctypes使用 Python 2.7.4 在 Mac OS X 10.6.8 上访问 Python 中的共享 C 库。为此,我需要#include <Python.h>在我的 C 代码中。如果我尝试编译一个只有一个包含语句的 C 脚本,将其称为“sample.c”,我会得到:

$ gcc -shared -o sample.so sample.c
sample.c:1:20: error: Python.h: No such file or directory

因为我运行的是 Mac 10.6,所以我有 Xcode 3.2.6,这是 OS X 迭代中可用的最新版本,无需付费升级到 10.7 并获得 Xcode 4。有没有办法在不升级我的操作系统的情况下获取 Python 头文件?

4

4 回答 4

31

Python 是 Mac OS X 上的一个框架,所以你需要,

#include <Python/Python.h>

您还需要使用参数调用gcc-framework在 C 中实际执行任何操作,

gcc -shared -o sample.so sample.c -framework Python
于 2013-05-09T04:52:24.647 回答
2

我不确定 10.6.8,但Python.h应该在

/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7

如果你安装了官方的 python.org 二进制文件。尝试添加

-I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7

听你的gcc命令,看看是否有效。

于 2013-05-09T04:37:35.243 回答
1

如果您使用 Brew 安装了 Python,则可能值得检查您的标头所在的位置。尝试I/usr/local/Cellar/python/...

于 2018-07-23T05:19:43.617 回答
1

另一种方法是添加`python-config --include`gcc调用中。它将扩展为-I/usr/...,所以

gcc -shared -o sample.so sample.c `python-config --include`

还可以检索其他选项,例如`python-config --cflags --ldflags`.

于 2019-11-27T16:10:09.750 回答