Не могу импортировать файл расширения C в Python - PullRequest
0 голосов
/ 18 марта 2019

Моя дополнительная функция 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'])])

Моя программа на Python, использующая этот файл C:

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

1 Ответ

0 голосов
/ 18 марта 2019

Вы действительно setup.py install ваш модуль?Если вы только построили его, он не будет на sys.path.

...