Найти - Пользователи
Полная версия: Модуль Расширения
Начало » Python для новичков » Модуль Расширения
1
esp23
мне нужно написать модуль расширения на си.
Допустим модуль simple который имеет функцию test.

simple.c:

PyObject *
test(PyObject *self,PyObject *args)
{
return Py_BuildValue(“”)
}

так вот когда в питоне я импортирую модуль и вызову функцию test могу ли я передать в качестве параметра спиок и как его в си функции привести к указателю типа unsigned char.
Вообще функция будет записывать в символьное устройство, я хочу передавать в качестве параметра в питоне спиок и длину и в си получать указатель на unsigned char и длину что бы воспользоваться функцией write!
doza_and
Я бы посоветовал использовать модуль CTypes, а simple определить в динамически подгружаемой библиотеке.

По поводу передачи длины - передаете c_int
Сам массив удобно передавать так:
import numpy as np
from ctypes import c_int
n=200
arr=np.zeros(n,dtype='i')
arr[0]=2
you_c_function(c_int(n),arr.ctypes.data)
esp23
Вот еще вопрос!
когда собираю модуль python setup.py build то модуль собирается,все нормально . как бы его собрать под arm ядро, пробовал указать так python setup.py build -carm-none-gnueabi-gcc
пишет вот что
error: don't know how to compile C/C++ code on platform ‘posix’ with ‘arm-none-linux-gnueabi-gcc’ compiler.
Спасибо заранее!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB