2014-10-18 128 views
0

我是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腳本。

回答