编程语言
首页 > 编程语言> > Distutils找不到Python.h

Distutils找不到Python.h

作者:互联网

我有一个带有扩展部分的distutils安装脚本,它看起来像这样:

from distutils.core import setup, Extension

my_module = Extension('my_module',
                sources = ['my_file.c', 'my_other_file.c'])

setup (name = 'my_module',
       version = '1.0',
       description = 'My module',
       ext_modules = [my_module])

运行setup.py build在我的Mac上运行正常.当我移动到Debian机器时,它失败了:

error: Python/Python.h: No such file or directory

我安装了python2.6和python2.6-dev,文件出现在/usr/include/Python2.6.

它为问题文件执行的命令:

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I /usr/include / python2.6 -c my_module.c -o -build / XYZ / my_module.o

所以它传递的是头文件的位置.

Mac与Linux环境之间唯一明显的区别是gcc-4.2 vs gcc-4.4和Python 2.7 vs Python 2.6

想法?

编辑:

在有问题的C文件中:

#include <Python/Python.h>
#include <Python/structmember.h>

解决方法:

可能在你的模块中,你需要包含“Python.h”而不是“Python / Python.h”?

或者您可以尝试导出包含路径,并尝试使用gcc或g再次编译?

export C_INCLUDE_PATH=/usr/include/python2.6:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/include/python2.6:$CPLUS_INCLUDE_PATH

标签:python,gcc,distutils,python-c-extension
来源: https://codeday.me/bug/20190518/1128706.html