您的位置:首页 > 编程语言 > C语言/C++

C++封装python扩展模块ImportError: No module named 原因分析

2012-02-13 17:35 1056 查看

[首发地址]

http://www.atolin.net/c%E5%B0%81%E8%A3%85python%E6%89%A9%E5%B1%95%E6%A8%A1%E5%9D%97importerror-no-module-named-%E5%8E%9F%E5%9B%A0%E5%88%86%E6%9E%90/



C++封装python扩展模块ImportError: No module named 原因分析

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

Traceback (most recent calllast):

File "t.py", line 6, in<module>

import Rabbit

ImportError: No modulenamed Rabbit

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

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

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

#ifdef PYRABBIT_EXPORTS
#define PYRABBIT_API__declspec(dllexport)
#else
#definePYRABBIT __declspec(dllimport)
#endif

extern "C" PYRABBIT_API void initRabbit(){
PyObject*m=Py_InitModule("Rabbit", RabbitMethods);
}

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

Import os

os.sys.path
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐