【发布时间】:2014-10-18 21:43:12
【问题描述】:
我是 cython 的新手。我有这个小 cython 代码示例:
hello_cython.pyx
cdef class Employee:
'Common base class for all employees'
cdef public int empCount
def __init__(self, name, double salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def displayCount(self):
print "Total Employee %d" % Employee.empCount
def displayEmployee(self):
print "Name : ", self.name, ", Salary: ", self.salary\
我使用 setup 编译这个 cython 代码 设置.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("hello_cython.pyx")
)
现在的目标是能够使用来自其他 python 脚本和 C++ 程序的 Employee 类。所以我想在执行 setup.py 时生成一个头文件(.h),它会创建一个 .h 文件和一个 .so 文件,可以从另一个 python 脚本和 .h(生成的相应 .cpp 文件)文件中使用,这样它可以包含在另一个 C++ 程序中,我可以在其中实例化 Employee 类并使用它的成员函数。正如在这个线程中提到的 (Call python code from c via cython) 我加了
cdef public int i;
在类定义之前,当我执行 setup.py 时,它会创建头文件。但问题是,当我将它包含在另一个 C++ 程序中时,Employee 类不可用。我是否在安装文件或 .pyx 文件中缺少某些内容..?或者我正在做一些在这种方法中不可能的事情。
我正在使用 python 3.2 运行 python 脚本。
【问题讨论】:
标签: python c++ header-files cython