文章目录
- 前言
- 一、问题描述
- 二、解决方法
- 1、安装依赖
- 2、配置环境变量
- 3、重新编译及安装
- 三、结果
- 1、添加结果
- 2、运行结果
前言
本文记录在 GNURadio 自定义 C++ OOT 块后导入块时报错 AttributeError: module 'myModule' has no attribute 'multDivSelect'
。
一、问题描述
参考官方教程 Creating C++ OOT with gr-modtool 创建自定义的 OOT块(OOT 模块是不存在于 GNU Radio 源代码树中的 GNU Radio 组件。全拼:Out-Of-Tree),运行时出现了如下报错:
Traceback (most recent call last):File "/home/gnep/GNURadio_test/test.py", line 189, in <module>main()File "/home/gnep/GNURadio_test/test.py", line 167, in maintb = top_block_cls()File "/home/gnep/GNURadio_test/test.py", line 129, in __init__self.myModule_multDivSelect_0 = myModule.multDivSelect(True)
AttributeError: module 'myModule' has no attribute 'multDivSelect'
二、解决方法
1、安装依赖
安装特定于你环境的依赖项(包括swig):
https://wiki.gnuradio.org/index.php/UbuntuInstall#Bionic_Beaver_.2818.04.29_through_Eoan_Ermine_.2819.10.29
我这里做的修改为:
sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy \
python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev \
libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 \
liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins \
python3-zmq python3-scipy python3-gi python3-gi-cairo gir1.2-gtk-3.0 \
libcodec2-dev libgsm1-dev libusb-1.0-0 libusb-1.0-0-dev libudev-dev
2、配置环境变量
根据以下步骤配置 PYTHONPATH 和/或 LD_LIBRARY_PATH:https://wiki.gnuradio.org/index.php/ModuleNotFoundError
参考上面内容,我做的修改为:
export PYTHONPATH=/usr/lib/python3/dist-packages:$PYTHONPATH
export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
这里确定没问题可以将其写入 ~/.bahsrc
使其永久生效
3、重新编译及安装
cd /home/gnep/gr-customModule/build
cmake -DCMAKE_INSTALL_PREFIX=$(gnuradio-config-info --prefix) ..
make
sudo make