Bonjour,
Tout d'abord, je m'excuse si je suis dans la mauvaise section.
Mon problème est une bête erreur de segmentation, mais avec l'API C de Python.
Voici mon code :
1 2 3 4 5 6 7 8
| PyObject* charger_module(const char* cName) {
PyObject *pName;
PyObject *pModule;
pName = PyString_FromString(cName);
pModule = PyImport_Import(pName); // L'erreur de segmentation est ici
Py_DECREF(pName);
return pModule;
} |
J'a trouvé l'origine de l'erreur en mettant toutes les lignes en commentaire, et en les dé-commentant au fur et à mesure.
Voici le prototype de PyImport_Import( :
PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name);
Merci d'avance,
ProgVal
PS : un exemple issu de la documentation officielle :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include <Python.h>
int
main(int argc, char *argv[])
{
PyObject *pName, *pModule, *pDict, *pFunc;
PyObject *pArgs, *pValue;
int i;
if (argc < 3) {
fprintf(stderr,"Usage: call pythonfile funcname [args]\n");
return 1;
}
Py_Initialize();
pName = PyString_FromString(argv[1]);
/* Error checking of pName left out */
pModule = PyImport_Import(pName);
Py_DECREF(pName);
// ... |
Partager