鍍金池/ 問答/Python  C  C++/ PyImport_ImportModule可以導入同一個module兩次嗎?

PyImport_ImportModule可以導入同一個module兩次嗎?

代碼如下,第二次進入的時候,到PyImport_ImportModule這一行就崩潰,還捕獲不到異常

    Py_Initialize();
    char fileName[] = "rabbitProducer.producer";
    try
    {
        PyObject * moduleObj = PyImport_ImportModule(fileName);        

        if (moduleObj)
        {
            char functionName[] = "produce";
            PyObject * functionObj = PyObject_GetAttrString(moduleObj, functionName);

            if (functionObj)
            {
                if (PyCallable_Check(functionObj))
                {
                    PyObject * bytesObject = Py_BuildValue("y#", message,len);
                    PyObject * argsObject = PyTuple_New(1);
                    PyTuple_SetItem(argsObject, 0, bytesObject);
                
                    if (argsObject)
                    {
                        PyObject * resultObject = PyObject_CallObject(functionObj, argsObject);
                        if (resultObject)
                        {
                            Py_DECREF(resultObject);
                        }
                        else if (PyErr_Occurred())
                        {
                            PyErr_Print();
                        }
                        Py_DECREF(bytesObject);
                        Py_DECREF(argsObject);
                    }
                }
                Py_DECREF(functionObj);
            }
            //else PyErr_Clear();

            Py_DECREF(moduleObj);
        }
        Py_Finalize();
    }
    catch (PyObject* ex)
    {
        PyException_GetTraceback(ex);
    }
回答
編輯回答
陌顏

您好,您這個問題解決了嗎,遇到類似的問題,方便給予解答嗎。 qq郵箱 137370999@qq.com 。謝謝!

2017年10月10日 12:21
編輯回答
淺淺

請問樓主知道為什么了么,我也遇到了同樣的問題

2018年6月3日 10:08
編輯回答
糖果果

采用初始化語句的時候只使用一次,然后在最后結束的時候釋放相關資源就可以解決。

2017年8月25日 02:37