1) define PyModuleDef 2) change PyString_AS_STRING calls to _PyUnicode_AsString
Aside: Please don't use private APIs in Python extensions. Esp. the above Unicode API is likely going to be phased out.
You're better off, using PyUnicode_AsUTF8String() instead and then leaving the PyString_AS_STRING() macro in place.
In the standart Python 3.2 source tree, Modules/_lsprof.c uses that internal function _PyUnicode_AsString. Internal means internal to the whole distribution here I think?. But IMHO, this should not be the case, C API modules in the standart dist. should not use internal functions of other areas. Like in the example: cProfile code has nothing to do with the Unicode internals. New developers like me, are in need a consistent examples of usage of Python C API, especially on Python 3.2. Thanks, -- Sumer Cip