我是cython的新手。我有這個小用Cython代碼示例:Cython的C++頭文件
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.py
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("hello_cython.pyx")
)
現在的目標是能夠使用類編譯安裝這個用Cython代碼來自其他Python腳本和C++程序的員工。所以我想在生成一個頭文件(.h),當我做setup.py它創建一個.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腳本。