我正在尝试使用SWIG为某些C ++代码生成Python绑定。
它创建了一些blah_wrap.cxx
和blah.py
个文件。
然后我创建了这个setup.py
from distutils.core import setup, Extension
ext = Extension('_ev3',
sources=[
'ev3_serial_wrap.cxx',
'ev3_serial.hpp'
'ev3_motor_wrap.cxx',
'ev3_motor.hpp'
'ev3_i2c_wrap.cxx',
'ev3_i2c.hpp'
'ev3_analog_wrap.cxx',
'ev3_analog.hpp'
],
language='c++',
)
setup (name = 'evpy',
version = '0.1',
author = "Pepijn de Vos",
description = """
An EV3 API.
""",
ext_modules = [ext],
packages=['evpy'],
)
但后来我
$ python3 setup.py build
running build
running build_py
running build_ext
building '_ev3' extension
error: unknown file type '.hpp' (from 'ev3_analog.hpp')
.hpp
是一个非常标准的C ++扩展吗?为什么不.cpp
?我不知道,原始代码的作者把实现放在他的头文件中。
答案 0 :(得分:0)
基本上,.h
和.hpp
执行相同的工作,尝试将扩展名更改为.h
,您的python脚本可能不知道.hpp
个文件(不是耻辱)...
答案 1 :(得分:0)
你确定头文件应该在sources参数中,而不是在另一个像头文件中吗?
答案 2 :(得分:0)
您可以使用参数“include_dirs”。请参阅此处的扩展文档: http://docs.python.org/2/extending/building.html http://docs.python.org/2/distutils/apiref.html#distutils.core.Extension