Python 3 C API。初始化MIMEText对象失败

时间:2011-07-01 12:02:32

标签: python

我希望将Python嵌入到C程序中。在发送电子邮件之后,Python会考虑其他事项。我可以毫无困难地使用C中的基类型,但是我在使用库中的其他对象时遇到了麻烦。

我希望通过以下方式实例化MIMEText实例:

PyObject *mimeTextModule = PyImport_ImportModule("email.mime.text");    
PyObject* sys_mod_dict = PyImport_GetModuleDict();
PyObject* main_mod = PyMapping_GetItemString(sys_mod_dict, "__main__");
PyObject* mimeText = PyObject_CallMethod(main_mod, "MIMEText", "s", "test email body");

但mimeText为NULL。我也试过以下,结果相同:

PyObject *mimeTextModule = PyImport_ImportModule("email.mime.text");    
PyObject *mimeTextClass = PyObject_GetAttrString(mimeTextModule, "MIMEText");
PyObject *mimeText = PyObject_CallMethod(mimeTextClass, "__init__", "s", "test email body");

帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

返回NULL表示发生了异常,您需要check what it is

如果你想实例化一个类,那么你在C语言中就像在Python中一样:call it