2012-02-23 41 views
2

我的工作我的包装的python C扩展和我遇到的麻烦在这里:包C中的Python C扩展 - 不工作?

. 
|-- c_ext/ 
| |-- __init__.py 
|-- c_src/ 
setup.py 

有了这个setup.py

from distutils.core import setup, Extension 

setup(name = "Utilities", 
     version = '1.0', 
     description = ('Various utils'), 
     packages = ["utils"], 
     ext_modules = [Extension("utils.c_ext", ['c_src/c_extmodule.c'])] 
     ) 

我可以创建一个没有问题,但在安装后,我可以不导入我的模块,我只是得到一个ImportError。

我确定这是件小事,所以我错过了什么?

在此先感谢!

回答

0

你有你的模块具有以下签名的函数:

PyMODINIT_FUNC initc_ext(void); 

当您导入C扩展它调用函数初始化哪里是扩展的确切名称。 (请注意,惯例是将C扩展命名为_foo,并且您得到像init_foo这样的函数)

确切的错误也有助于更好地诊断。