请教python的c扩展问题

请教python的c扩展问题

按照教程写了一个扩展,但是在import的时候python解释器报告"ImportError:no module named XXXX",为什么?
PS:
有没有python/c api的中文教程下载?
没有在路径里。。你把那个模块放哪里了
我在dll的目录下执行的python,当前路径不也是搜索路径吗?
是的。 python的c api在python自带的文档里就有介绍。
代码帖出来看看?
wrap.c:

#include "c:\\python25\include\\Python.h"
#include "dbf.h"

PyObject* GetTestCode(PyObject* self, PyObject* args)
{
        char *dbfpath;
        if (!PyArg_ParseTuple(args, "s", &dbfpath))
                return NULL;

        PyObject* pDict = PyDict_New();
        assert(PyDict_Check(pDict));
        ......
        PyDict_SetItem(pDict, Py_BuildValue("i", code), Py_BuildValue("s", szBuffer));
        return pDict;
}

static PyMethodDef wrapMethods[] =
{
  {"GetTestCode", GetTestCode, METH_VARARGS, "Get test code tuples."},
  {NULL, NULL}
};

void inittestdbf()
{
  PyObject* m = Py_InitModule("testdbf", wrapMethods);
}
上面那段c代码编译出来的扩展模块不能import吗?

可以试试这样:
c模块的扩展名改为pyd,, 比如你这个就改为 testdbf.pyd 后试试能不能import, 就放到当前目录下。

对了,如果是在linux上,扩展名应该是so。

谢谢!改成pyd后缀名就可以喽