私の理解が正しければ、
- Python 2.X の PyMODINIT_FUNC は Python3.X で置き換えられまし
PyModule_Create
た。 どちらも を返し
PyObject*
ますが、Python 3.X では、モジュールの初期化関数は をモジュールに返さなければなりませんPyObject*
。つまり、PyMODINIT_FUNC PyInit_spam(void) { return PyModule_Create(&spammodule); }
一方、Python2.X では、これは必要ありません。
PyMODINIT_FUNC initspam(void) { (void) Py_InitModule("spam", SpamMethods); }
したがって、私の健全性チェックの質問は次のとおりです。
- 私の理解は正しいですか?
- なぜこの変更が行われたのですか?
現在、私は Python の C 拡張の非常に単純なケースのみを試しています。おそらく、私がもっとやっていたら、これに対する答えは明らかだったでしょう。あるいは、Python を何か他のものに埋め込もうとしていたのかもしれません....