PyMarshal_ReadObjectFromFile导致分段错误

时间:2019-02-18 12:53:06

标签: python c++ python-3.x cpython python-3.7

我试图从C ++执行python字节码。这是我的代码:


#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 在自制或miniconda中尝试过python

我该如何解决?

0 个答案:

没有答案