程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++封裝python擴展模塊ImportError

C++封裝python擴展模塊ImportError

編輯:C++入門知識

用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

 

摘自 無聊中的博客

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved