用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