![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
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 }Build the extension using Microsoft Visual Studio
cl /LD hellomodule.c /Ic:\Python26\include c:\Python26\libs\python26.lib /link/out:hello.dll
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
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 python setup.py build
Usage:
1 import hello
2 hello.say_hello("World")
3
output: Hello World!