所以我有一个目录,它看起来是这样的:Python安装脚本扩展,你如何包含一个.h文件?
home\
setup.py
some_python_file.py
ext\
__init__.py
c_file1.c
c_file2.c
ext_header.h
显然,头文件是需要编译C文件,但问题是,我不能让安装脚本包括头文件。
我的扩展对象是这样的:
Extension('ext.the_extension', ['ext/c_file1.c', 'ext/c_file2.c'])
其中一期工程,但不包括头文件。如果我将其更改为:
Extension('ext.the_extension', ['ext/c_file1.c', 'ext/c_file2.c', 'ext_header.h'])
它包含'.h'文件,但在运行安装时不会生成。相反,它提供了与错误error: unknown file type '.h' (from 'ext/ext_header.h')
如果我包含头文件作为这样的数据文件:
data_files=[('ext', ['ext/ext_header.h'])]
不会在所有的工作,.h文件甚至不让它进MANIFEST文件。
所以我的问题是,你如何将这个扩展与头文件包含在一起,这样python setup.py install
会正确地构建它?
我认为这可能是正确的道路编译,但我有点困惑,什么是继续。 include_dir变量是否告诉编译器在哪里查找头文件?这将如何导致我的.h文件进入MANIFEST? – user411133 2010-11-23 18:41:23
`include dirs`告诉编译器在哪里查找包含`<>`的标准头文件,例如``,``等。如果安装脚本不想打包自己的头文件文件,我认为你不应该在Python扩展中有自定义头文件。 –
2010-11-23 18:56:46