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

GNU Radio报错AttributeError: module 'tutorial'无'my_qpsk_demod_cb'属性求解

问题解决思路

你遇到的AttributeError: module 'tutorial' has no attribute 'my_qpsk_demod_cb'错误,本质是自定义OOT模块的Python绑定没有正确生成、安装或者被系统识别,按照以下步骤逐一排查即可:

  • 检查公共头文件include/tutorial/my_qpsk_demod_cb.h
    确认该文件中正确声明了my_qpsk_demod_cb类,且添加了生成SWIG绑定所需的GR_SWIG_BLOCK_MAGIC2(tutorial, my_qpsk_demod_cb)宏,这个宏是Python可以识别到自定义块的核心依赖,缺失就不会生成对应的Python接口。
  • 检查SWIG接口配置
    打开模块swig目录下的tutorial_swig.i文件,确认已经添加了以下两行内容:
    %include "my_qpsk_demod_cb.h"
    %template(my_qpsk_demod_cb_sptr) boost::shared_ptr<gr::tutorial::my_qpsk_demod_cb>;
    
    漏加上述内容的话,SWIG不会将该自定义块绑定到Python的tutorial模块中。
  • 检查编译配置
    打开模块lib目录下的CMakeLists.txt,确认my_qpsk_demod_cb_impl.cc已经被添加到模块的源码编译列表中,未添加的话块代码不会被编译进最终的模块库文件,Python自然无法识别。
  • 重新编译安装模块
    进入模块的build目录,依次执行以下命令完成重新编译安装:
    cmake ..
    make -j$(nproc)
    sudo make install
    sudo ldconfig
    
    注意如果使用了Python虚拟环境,需要确保cmake配置的安装路径对应虚拟环境的第三方库目录,避免模块被安装到系统默认路径后虚拟环境无法识别。
  • 验证绑定是否生效
    终端执行python3进入交互环境,依次运行以下命令验证:
    import tutorial
    print("my_qpsk_demod_cb" in dir(tutorial))
    
    输出为True就说明绑定已经生效,重新运行流图即可。如果输出为False,检查是否有旧版本的tutorial模块残留,删除残留文件后重新执行安装步骤即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:06:05