无法在 Python 中导入 C 扩展名文件



我的扩展C函数,在pyc.c

#include<Python.h>
static PyObject *add(PyObject* self,PyObject* args) {
    int a=9;
    int b=10;
    int c=a+b;
    return Py_BuildValue(c);
    //return Py_BuildValue( "s","hiiiii");
}
static char prin_docs[] = "prin( ): Any message you want to put here!!n";
static PyMethodDef consume_methods[] = {
   {"add", (PyCFunction)add,
       METH_NOARGS, prin_docs},
       {NULL}
};
PyMODINIT_FUNC initadd(void) {
   Py_InitModule3(add, consume_methods,
                  "Extension module example!");
}

我的设置文件:

from distutils.core import setup, Extension
setup(name='add', version='1.0',  
      ext_modules=[Extension('add', ['pyc.c'])])

我使用该c文件的Python程序:

import add
print(add.add());

上面的代码成功创建了一个.so对象,但是我无法通过执行该代码在Python程序中导入。我收到以下错误:

Traceback (most recent call last):
  File "pycall.py", line 1, in <module>
    import add
ImportError: No module named add

您实际上是 setup.py install吗?如果仅构建它,它将不会在sys.path上。

最新更新