hellomodule.c
1 #include <Python.h>
2
3 static PyObject* say_hello(PyObject* self, PyObject* args)
4 {
5 const char* name;
6
7 if (!PyArg_ParseTuple(args, "s", &name))
8 return NULL;
9
10 printf("Hello %s!\n", name);
11
12 Py_RETURN_NONE;
13 }
14
15 static PyMethodDef HelloMethods[] =
16 {
17 {"say_hello", say_hello, METH_VARARGS, "Greet somebody."},
18 {NULL, NULL, 0, NULL}
19 };
20
21 PyMODINIT_FUNC inithello(void)
22 {
23 (void) Py_InitModule("hello", HelloMethods);
24 }
1 #include <Python.h>
2
3 static PyObject* say_hello(PyObject* self, PyObject* args)
4 {
5 const char* name;
6
7 if (!PyArg_ParseTuple(args, "s", &name))
8 return NULL;
9
10 printf("Hello %s!\n", name);
11
12 Py_RETURN_NONE;
13 }
14
15 static PyMethodDef HelloMethods[] =
16 {
17 {"say_hello", say_hello, METH_VARARGS, "Greet somebody."},
18 {NULL, NULL, 0, NULL}
19 };
20
21 PyMODINIT_FUNC inithello(void)
22 {
23 (void) Py_InitModule("hello", HelloMethods);
24 }
Build the extension using Microsoft Visual Studio
cl /LD hellomodule.c /Ic:\Python26\include c:\Python26\libs\python26.lib /link/out:hello.dll
setup
1 from distutils.core import setup, Extension
2
3 module1 = Extension('hello', sources = ['hellomodule.c'])
4
5 setup (name = 'PackageName',
6 version = '1.0',
7 description = 'This is a demo package',
8 ext_modules = [module1])
9 Now we can build our module with
10
1 from distutils.core import setup, Extension
2
3 module1 = Extension('hello', sources = ['hellomodule.c'])
4
5 setup (name = 'PackageName',
6 version = '1.0',
7 description = 'This is a demo package',
8 ext_modules = [module1])
9 Now we can build our module with
10
python setup.py build
Usage:
1
import
hello
2 hello.say_hello( " World " )
3
2 hello.say_hello( " World " )
3
output: Hello World!