You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C++中调用Python函数遇阻:无法获取Python函数对象求助

C++调用Python函数时获取函数对象为NULL的排查建议
  • 确认函数名的大小写与全局可见性:Python对大小写敏感,检查你在C++中指定的函数名是否和Python脚本里的完全一致;同时确保函数是直接定义在模块全局作用域,不是嵌套在类或其他函数内部。
  • 验证Python模块搜索路径:通过C++代码打印Python的搜索路径,确认脚本所在目录被包含:
    PyRun_SimpleString("import sys; print(sys.path)");
    
    如果路径缺失,手动添加:
    PyRun_SimpleString("import sys; sys.path.append('/path/to/your/script/directory')");
    
  • 打印Python侧错误信息:在获取函数后添加错误检查,直接输出Python的报错详情,这是最有效的排查手段:
    PyObject* func = PyObject_GetAttrString(module, "target_func");
    if (!func) {
        PyErr_Print();
        return; // 或做其他错误处理
    }
    
  • 检查Python脚本的有效性:直接用对应版本的Python解释器运行脚本,确认没有语法错误、依赖导入失败等问题——脚本本身无法正常运行的话,C++也无法正确加载其中的函数。
  • 确认Python版本匹配:确保C++程序链接的Python动态库版本,和编写脚本所用的Python版本完全一致,版本不兼容会导致模块加载异常。

内容的提问来源于stack exchange,提问作者jgamelin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:42:05