Articles of python c api

Los datos grandes de POST se corrompen cuando se utiliza Django / PyISAPIe / IIS

Tengo un problema con los datos de gran tamaño de la POST (> 16384 bytes) cuando uso Django 1.2.3, PyISAPIe v1.1.0-rc4 e IIS 7.5. Por ejemplo, al enviar aprox. 60kB de datos de formulario utilizando POST, sucede lo siguiente: El primer bloque de 16kB de datos POST es correcto El siguiente bloque de 16kB es […]

Cómo obtener un char * de un PyObject que apunta a una cadena

¿Cómo puedo obtener un char * de un PyObject que apunta a una cadena? Por ejemplo, este es el script de Python, Test.Connect(“272.22.20.65”, 1234) y este es el código C ++, static PyObject* Connect(PyObject *self, PyObject *args) { PyObject* pIP; PyObject* pPort; if (!PyArg_UnpackTuple(args, “Connect”, 2, 2, &pIP, &pPort)) { return NULL; } const char* […]

PyObject_CallMethod con argumentos de palabras clave

Estoy intentando incrustar una biblioteca de Python (2.7) en mi aplicación C y estoy usando la API de Python / C para llamar al código de Python desde C. Necesito llamar a un método de Python que tome argumentos de palabras clave. Semánticamente, estoy intentando lograr el equivalente de la siguiente línea en Python: myobject.dosomething(‘blahdy […]

NumPy C-API: convierte el tipo de objeto en un número de tipo

La función PyObject* PyArray_TypeObjectFromType(int); convierte el número de tipo para un tipo escalar NumPy (NPY_BOOL, NPY_BYTE, …) en el objeto de tipo correspondiente. ¿Cómo hace la conversión opuesta, desde el objeto de tipo para un tipo escalar NumPy hasta el número de tipo correspondiente? Edición: El siguiente código se basa en la respuesta de kwatford. […]

¿Cómo redirigir stderr en Python? ¿A través de Python C API?

Esta es una combinación de mis dos preguntas recientes: [1] Método de instancia de Python en C [2] ¿Cómo redireccionar stderr en Python? Me gustaría registrar la salida de stdout y stderr desde una secuencia de comandos de python. Lo que quiero preguntar es que crear un nuevo tipo de acuerdo con [1] parece bastante […]

¿Cómo sabe Python 3 cómo elegir tipos de extensiones, especialmente matrices Numpy?

Los arrays de Numpy, al ser tipos de extensiones (también se define como usar en extensiones la API de C), declaran campos adicionales fuera del scope del intérprete de Python (por ejemplo, el atributo de data , que es una Buffer Structure , como se documenta en la interfaz de arrays de Numpy). Para poder […]

encastrando datos de PyArrayObject en una matriz C

Quiero trabajar con mis matrices Numpy en una extensión C. Muchos ejemplos en este caso utilizan la estructura de PyArrayObject, array->data , array->strides[0] , array->strides[1] , … punteros para alcanzar los datos, si quisiera llegar a mi matriz de una forma más familiar (o más ordenada) para mí, con índices como array[i][j] ¿Cómo debo proceder […]

¿Cuándo se debe llamar a PyEval_InitThreads?

Estoy un poco confundido acerca de cuándo debo llamar a PyEval_InitThreads . En general, entiendo que se debe llamar a PyEval_InitThreads siempre que se PyEval_InitThreads un subproceso que no sea de Python (es decir, un subproceso que se genera dentro de un módulo de extensión). Sin embargo, estoy confundido si PyEval_InitThreads es para progtwigs C […]

(Python C API) ¿PyRun_StringFlags faltan funciones incorporadas?

Estoy tratando de insertar algo de python en el proyecto de mi mascota. He reducido mi problema al siguiente código: #include #include “iostream” int main(int argc, char *argv[]) { Py_Initialize(); PyObject *globals = Py_BuildValue(“{}”); PyObject *locals = Py_BuildValue(“{}”); PyObject *string_result = PyRun_StringFlags( “a=5\n” “s=’hello’\n” “d=dict()\n” , Py_file_input, globals, locals, NULL); if ( PyErr_Occurred() ) {PyErr_Print();PyErr_Clear();return […]

En Python, ¿por qué se implementa un módulo en C más rápido que un módulo de Python puro y cómo se escribe uno?

La documentación de Python indica que la razón por la que cPickle es más rápida que Pickle es que la primera se implementa en C. ¿Qué significa eso exactamente? Estoy haciendo un módulo para matemáticas avanzadas en Python, y algunos cálculos toman una cantidad significativa de tiempo. ¿Eso significa que si mi progtwig se implementa […]