2011-07-01 11 views
1

私はPythonをCプログラムに埋め込むことを検討しています。とりわけ、Pythonは電子メールを送信した後に見ます。私はCからの基本型の使用に問題はありませんが、ライブラリ内の他のオブジェクトの使用には問題があります。Python 3 C API。 MIMETextオブジェクトを初期化できません。

私がでます: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

NULLを返すと、例外が発生し、check what it isが必要であることを意味します。

クラスをインスタンス化する場合は、Pythonで行うのと同じ方法でC:call itを実行します。

+0

ありがとうございますIgnacio。 – user577814

関連する問題