Python C APiで拡張 on windows
cソースはmingw使ってビルド。
#include <Python.h> /* モジュールの関数 */ static PyObject *hello(PyObject* self, PyObject *args) { printf("Hello World!!\n"); Py_RETURN_NONE; } /* モジュールのメソッドテーブル */ static PyMethodDef methods[] = { {"hello", (PyCFunction)hello, METH_VARARGS, "print hello world.\n"}, {NULL, NULL, 0, NULL} }; /* モジュールの初期化関数 */ PyMODINIT_FUNC initsample(void) { (void)Py_InitModule("sample", methods); }
ビルドコマンド
gcc -o ext_sample.o -c ext_sample.c -I"C:\python27\include" gcc -shared ext_sample.o -o ext_sample.pyd -L"C:\python27\libs" -lpython27
注意点
- initsample()だた、命名規則として「init<モジュール名>」とする必要がある。