Я пытался выполнить байт-код Python из C ++.Вот мой код:
#include <Python.h>
#include <iostream>
#include <marshal.h>
using namespace std;
int main(){
PyObject *pName, *pModule, *pFunc;
PyObject *pArgs, *pValue;
//cout<<233<<endl;
Py_Initialize();
FILE *fff = fopen("./a.pyc","br");
pModule = PyMarshal_ReadObjectFromFile(fff);
//Py_DECREF(pModule);
//cout<<PyCode_GetNumFree(pModule);
//PyImport_ExecCodeModule("asd",pModule);
pValue = PyLong_FromLong(123);
cout<<PyCode_Check(pModule); // here causes segmentation fault
return 0;
}
Затем я понял, что проблема возникает, когда я пытался получить значение pModule->ob_type
.Моя платформа: macos 10.13 Пробовал python на доморощенном или миниконде
Как мне решить эту проблему?