C++封裝python擴展模塊ImportError
用C++為Python編寫擴展模塊(動態(tài)鏈接庫),并在Python中調(diào)用C++開發(fā)的擴展功能函數(shù)過程,遇到如下錯誤的童鞋,是不是很苦惱啊:Traceback (most recent calllast):
File "t.py", line 6, in<module>
import Rabbit
ImportError: No modulenamed Rabbit
經(jīng)過分析,可能的原因有:
1、 開發(fā)中若使用的Python2.5版本,請檢查生成的動態(tài)庫擴展名,是不是“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、 生成的動態(tài)庫文件(后綴名為pyd),所在目錄沒有加入到環(huán)境變量里面,可以通過在控制臺輸入以下命令檢查;華夏名網(wǎng)主機怎么樣
Import os
os.sys.path
# re: C++封裝python擴展模塊ImportError 2012-02-20 09:06 tb 回復 更多評論
不錯呀