频道栏目
首页 > 程序开发 > 软件开发 > C++ > 正文
C++封装python扩展模块ImportError
2012-02-16 08:51:16           
收藏   我要投稿

用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

 

摘自 无聊中的博客
点击复制链接 与好友分享!回本站首页
相关TAG标签 C++ 模块
上一篇:C++多继承中重写不同基类中相同原型的虚函数
下一篇:C++学习-集成开发环境CodeBlocks(1)
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站