2

我正在打包我的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。

我确定这是微不足道的,所以我错过了什么?

提前致谢!

4

1 回答 1

0

您的模块中是否有具有以下签名的函数:

PyMODINIT_FUNC initc_ext(void);

当您导入 C 扩展时,它会调用函数 init,其中是扩展的确切名称。(请注意,约定是将 C 扩展命名为 _foo 之类的名称,并且您会得到一个类似 init_foo 的函数)

确切的错误也将有助于更好地诊断这一点。

于 2012-03-17T00:08:47.830 回答