我尝试使用Python 2.7.4在Mac OS X 10.6.8上使用ctypes
访问Python中的共享C库。为此,我需要在我的C代码中#include <Python.h>
。如果我尝试编译一个只有一个include语句的C脚本,请调用它&#34; sample.c&#34;,我得到:
$ 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头文件没有升级我的操作系统?
答案 0 :(得分:24)
Python是Mac OS X上的一个框架,所以你需要,
#include <Python/Python.h>
您还需要使用gcc
参数调用-framework
来实际执行C内的任何操作,
gcc -shared -o sample.so sample.c -framework Python
答案 1 :(得分: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
命令,看看是否有效。
答案 2 :(得分:0)
如果您使用Brew安装了Python,则可能值得检查标头的位置。
尝试I/usr/local/Cellar/python/...
答案 3 :(得分:0)
另一种方法是将alignof
添加到`python-config --include`
调用中。它将扩展为gcc
,所以
-I/usr/...
还可以检索其他选项,例如gcc -shared -o sample.so sample.c `python-config --include`
。