啊啊

用C++为Python编写扩展模块(动态链接库),并在Python中调用C++开发的扩展功能函数过程,遇到如下错误的童鞋,系不系很苦恼啊:

Traceback (most recent call last):
File “t.py”, line 6, in <module>
import Rabbit
ImportError: No module named Rabbit

经过分析,可能的原因有:

1、  开发中若使用的Python2.5版本,请检查生成的动态库扩展名,是不是”pyd”;(若后缀是dll,悲催了,赶紧修改吧);

2、  在DLLMAIN的源代码中,将扩展模块的初始化代码导出:

#ifdef PYRABBIT_EXPORTS
#define PYRABBIT_API __declspec(dllexport)
#else
#define PYRABBIT __declspec(dllimport)
#endif
extern “C”  PYRABBIT_API void initRabbit(){
PyObject* m=Py_InitModule(“Rabbit”, RabbitMethods);
}

3、  生成的动态库文件(后缀名为pyd),所在目录没有加入到环境变量里面,可以通过在控制台输入以下命令检查;

Import os
os.sys.path

posted @ 2012-07-28 23:12  dengyigod  阅读(306)  评论(0编辑  收藏  举报