Articles of ctypes

Pasa una matriz numpy 2d a c usando ctypes

¿Cuál es la forma correcta de pasar una función numpy 2d – array a ac usando ctypes? Mi enfoque actual hasta ahora (conduce a una falla de seguridad): Código C: void test(double **in_array, int N) { int i, j; for(i = 0; i<N; i++) { for(j = 0; j<N; j++) { printf("%e \t", in_array[i][j]); } […]

Pasando una lista de cadenas desde python / ctypes a la función C que espera el carácter **

Tengo una función C que espera una lista \ 0 cadenas terminadas como entrada: void external_C( int length , const char ** string_list) { // Inspect the content of string_list – but not modify it. } Desde python (con ctypes) me gustaría llamar a esta función basada en una lista de cadenas de python: def […]

ctypes cargando ac biblioteca compartida que tiene dependencias

En Linux, tengo una biblioteca compartida de CA que depende de otras librerías. LD_LIBRARY_PATH está configurado correctamente para permitir que el vinculador cargue todas las bibliotecas. Cuando lo hago: libgidcwf = ctypes.cdll.LoadLibrary(libidcwf_path) Obtuve el siguiente error: Traceback (most recent call last): File “libwfm_test.py”, line 12, in libgidcwf = ctypes.cdll.LoadLibrary(libidcwf_path) File “/usr/lib/python2.5/ctypes/__init__.py”, line 431, in LoadLibrary […]

¿Cómo interactúo con MATLAB desde Python?

Un amigo me preguntó sobre la creación de una pequeña interfaz web que acepte algunas entradas, las envíe a MATLAB para realizar cálculos numéricos y arroje los resultados. Soy un desarrollador de Python / Django, por lo que puedo manejar la interfaz web, pero no tengo ni idea de MATLAB. Específicamente: Realmente me gustaría evitar […]

C DLL se carga en el progtwig C ++, no en Python Ctypes

Pregunta sobre python / ctypes y carga dll. He creado una Dll C (declaraciones C externas) usando VSExpress 2010. Puedo cargar y ejecutar esta dll con un progtwig de prueba CPP. Sin embargo, cuando bash cargar la dll en python mediante ctypes, aparece el mensaje de error “WindowsError: [Errno 126] El módulo especificado no se […]

Reemplazo de Python 3 para PyFile_AsFile

El siguiente código funciona en Python 2: from ctypes import * ## Setup python file -> c ‘FILE *’ conversion : class FILE(Structure): pass FILE_P = POINTER(FILE) PyFile_AsFile = pythonapi.PyFile_AsFile # problem here PyFile_AsFile.argtypes = [py_object] PyFile_AsFile.restype = FILE_P fp = open(filename,’wb’) gd.gdImagePng(img, PyFile_AsFile(fp)) Pero en Python 3, no hay PyFile_AsFile en pythonapi. El código […]

Copiar imagen PIL / PILLOW en el portapapeles de Windows

He visto esta pregunta y seguí cada paso, cambiando el código para satisfacer mis requisitos, que son Python3, Pillow y ctypes. Mientras menos bibliotecas, mejor. import ctypes from PIL import ImageGrab, Image from io import BytesIO user32 = ctypes.windll.user32 img = ImageGrab.grab() output = BytesIO() img.convert(“RGB”).save(output, “BMP”) data = output.getvalue()[14:] output.close() user32.OpenClipboard() user32.EmptyClipboard() user32.SetClipboardData(user32.CF_DIB, data) […]

Simulación de desbordamiento de enteros en Python

Python 2 tiene dos tipos de datos enteros int y long , y se convierte automáticamente entre ellos según sea necesario, especialmente para evitar el desbordamiento de enteros. Estoy simulando una función C en Python y me pregunto si hay formas estándar de volver a habilitar el desbordamiento de enteros. Para el nonce, he usado […]

Error con Python ctypes y librsvg

Estoy tratando de envolver la función básica de librsvg con ctypes para Python, pero estoy obteniendo una falla de seguridad. DO: // pycairo excerpt typedef struct { PyObject_HEAD cairo_t *ctx; PyObject *base; /* base object used to create context, or NULL */ } PycairoContext; // librsvg excerpt RsvgHandle * rsvg_handle_new_from_file (const gchar * file_name, GError […]

error de lanzamiento de create_string_buffer TypeError: str / bytes esperado en lugar de la instancia de str

Estoy probando este simple ejemplo de ctypes y obtengo el error mencionado >>> from ctypes import create_string_buffer >>> str = create_string_buffer(“hello”) Traceback (most recent call last): File “”, line 1, in File “C:\Python32\lib\ctypes\__init__.py”, line 59, in create_string_buffer buf.value = init TypeError: str/bytes expected instead of str instance ¿Alguien sabe qué estoy haciendo mal? En la […]