Ошибка выполнения: ошибка ffi_prep_cif

Я работаю над проектом, где я должен использовать ctypes для вызова нескольких функций C из файла C в скрипте Python. Я создал общий объект из файла C и использовал его в своем скрипте Python.

Я определил структуру C в ctypes, но я получаю RuntimeError во время работы моего скрипта Python. Ошибка:

ffi_prep_cif failed

Я включил заголовок ffi.h в мой C-файл и снова создал общий объект, но я все еще получаю ту же ошибку. Какие-либо предложения?

Код, который я написал для оболочки в Python, выглядит следующим образом:

if __name__ == "__main__":
    lib_fib = ctypes.CDLL('./lib6.so')

    class model_t(ctypes.Structure):
        _fields__ = [('weight', ctypes.POINTER(ctypes.c_float)),
                     ('threshold', ctypes.c_float)]

    data = [1.0, 2.0, 3.0]
    f1 = 2.5
    l = len(data)
    m = model_t()
    m.weight = (ctypes.c_float * l)(*data)
    m.threshold = (ctypes.c_float * 1)(l)

    chr_p = ctypes.POINTER(ctypes.c_char)
    c = 'abcd'
    l1 = len(c)
    chr_p = (ctypes.c_char * l1)(*c)

    out = lib_fib.new_classify(m, chr_p)
    print out`

Я пытаюсь заменить функцию Python под названием self.abc_prob() с С new_classify(), Это часть моей функции C, которую я хочу вызвать с помощью ctypes:

extern double 
new_classify(model_t *model_ptr, char *s) 
{
    char bigram[3];         /* Used only when debugging */

    float *model_weights = model_ptr->weights;
    float threshold = model_ptr->threshold;

    /* ... */

0 ответов

Другие вопросы по тегам