PyMarshal_ReadObjectFromFile вызывает ошибку сегментации - PullRequest
0 голосов
/ 18 февраля 2019

Я пытался выполнить байт-код 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 на доморощенном или миниконде

Как мне решить эту проблему?

...