C++封装python扩展模块ImportError

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

posted on 2012-02-15 21:50 一叶草 阅读(1808) 评论(1)  编辑 收藏 引用

评论

# re: C++封装python扩展模块ImportError 2012-02-20 09:06 tb  回复  更多评论   

不错呀

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理