J'ai une erreur intermittente provoquant mon module Python crash, et je suppose qu'il est à cause d'une erreur de mémoire se produit par ne pas obtenir les refcounts correcte dans le code c. J'ai un peu de code qui obtient une réponse à un moment aléatoire d'un endroit éloigné. Sur la base des données reçues, il faut mettre à jour une variable de données à laquelle je devrais avoir accès en Python. Quelle est la meilleure façon d'accomplir cela? Le code suivant s'exécute la plupart du temps, et il fonctionne correctement quand il le fait, mais quand ce n'est pas le cas, il plante Python (en affichant la boîte de débogage de Visual Studio). Merci.variable python c
if (event == kResponseEvent) {
list = PyList_New(0);
for (i = 0; i < event->count; i++) {
PyList_Append(list, Py_BuildValue("{s:i, s:s}",
"id", event->id,
"name", event->name));
}
PyModule_AddObject(module, "names", list);
}
je poste ce commentaire comme plutôt qu'une réponse, mais je me suis senti généralement que compiler la partie C en tant que lib partagé et en utilisant ctypes était plus gérable que d'utiliser la bibliothèque d'extension. Merci –
- Je vais examiner cette question, d'autant plus que je suis beaucoup plus bien versé en Python que C. – jeffaudio
Cython est une option encore plus glissante pour fournir des liaisons Python pour une bibliothèque C. –