解决ModuleNotFoundError: No module named ‘gnuradio‘

问题背景:

为了用上自己搭好的GNURadio流图去产生数据集,因此需要跑下RML2016作者的数据集生成代码,弄懂步骤。另外因为在社区看到windows对GnuRadio的使用限制,无奈使用Linux系统(ubuntu就是Linux系统的一种)

遇到问题:

import gnuradio遇到以下报错问题
ModuleNotFoundError: No module named ‘gnuradio‘

原因总结:

①gnuradio没安装
②gr-mediatools没装好,这个包装好才能导入gnuradio模块

(ง •_•)ง

本文会不断完善,尽量以最少的可行步骤解决问题

最近更新:2021.5.24
更新内容:删除了不必要的安装步骤

配置:

①虚拟机镜像(ubuntu,Linux系统的一种):ubuntu-18.04.5-desktop-amd64

因为windows对使用gnuradio的限制,还是下了虚拟机VMware。然后下个Linux系统镜像就可以了。
在这里插入图片描述

②python 2.7.17

③GNURadio 3.7.11

一、安装Python(命令默认2.7.17)

sudo apt-get install python
sudo apt-get install python-pip

二、安装GNURadio(命令默认3.7)

sudo apt-get update

如果失败(下面这种访问受限的情况)
在这里插入图片描述
进行换源
在命令行中输入:

sudo gedit /etc/apt/sources.list

在上面打开的文件开头添加(中科大的源)

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

再来一次

sudo apt-get update

然后

sudo apt-get install gnuradio

三、安装gr-mapper(用于py交互)和gr-mediatools

在安装之前,先在终端输入:

sudo apt-get install cmake
sudo apt-get install libavcodec-dev libavformat-dev

swig安装

apt install swig

安装前先下载下面两个包(链接在上面名字处)
在这里插入图片描述

3.1 安装gr-mapper(非必须)

这个安装包包含了接收机等模块的库。
如果只是要引入import gnuradio,那么请直接看3.2部分,这个模块可以不装。
如果是为了跑RML2016a作者的代码,那么这个环节是需要的,因为人家使用到了这部分包。
步骤如下
首先在linux的home目录下进行解压
在这里插入图片描述
继续输入下面命令,进入该目录(可以一起全部黏贴的,不要一条条复制黏贴)。

cd gr-mapper-master
mkdir build 
cd build
cmake ../
make -k
sudo make install
sudo ldconfig

3.2 安装gr-mediatools

(import gnuradio的包所需)
步骤一模一样,将下载的文件解压到文件夹然后开始装

cd gr-mediatools-master
mkdir build
cd build
cmake ../
make -k
sudo make install
sudo ldconfig

如果遇到报错
在这里插入图片描述
在gr-mediatools-master解压包的lib目录下找到
mediatools_audiosource_impl.cc文件,解决方案来源于该博主(前人种树后人乘凉,感激不尽,时间成本大大减少)。。
在这里插入图片描述
找到

d_frame = avcodec_alloc_frame();

替换为

d_frame = av_frame_alloc();

在这里插入图片描述
替换完后,记得再来一次前面的安装命令。
到此为止,顺利的话结束了(下面是安装过程的小截图)。
在这里插入图片描述
现在,我们已经获得了该库(经过试验mapper不装也可以导入gnuradio的)
终端进入python环境测试下
在这里插入图片描述
OK!如果上述都安装了,mapper和gnuradio的包都将会成功导入
在这里插入图片描述

*补充项(非必须)

1编辑器

终端写代码可能不是很方便,我这里用jupyter notebook作为编辑器
安装方式如下

sudo python -m pip install --upgrade --force pip 
sudo pip install setuptools==33.1.1
sudo pip install jupyter

如果出现报错
ERROR: Cannot uninstall ‘pyzmq’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

解决方案:

sudo pip install --ignore-installed pyzmq

接着在终端重设密码即可使用

python
from notebook.auth import passwd
passwd()

2一些扩展包

$ pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git
$ pybombs recipes add ettus-pybombs git+https://github.com/EttusResearch/ettus-pybombs.git
sudo apt-get install pkg-config
sudo  apt-get install texlive-latex-recommended

(开源接收机)

sudo apt-get install gqrx-sdr
sudo pybombs install hackrf rtl-sdr gr-osmosdr osmo-sdr

WINSCP传输所需包

sudo apt install net-tools
sudo apt-get install openssh-server

开启远程服务所需命令

service sshd start

查看ip命令

ifconfig

一些需要管理员权限的命令所需(首次设置密码)

sudo passwd root

进入root权限

su root

致谢以下博主的博客

https://blog.csdn.net/qq_45103492/article/details/108449519

https://blog.csdn.net/u011441044/article/details/99442178

https://blog.csdn.net/universe_1207/article/details/108589944

根据引用\[1\]和引用\[2\]的内容,解决"ModuleNotFoundError: No module named 'gnuradio'"的方法如下: 1. 首先,确保已经安装了Python和pip。可以使用以下命令安装Python和pip: ``` sudo apt-get install python sudo apt-get install python-pip ``` 2. 然后,安装GNURadio。可以使用以下命令更新软件包列表并安装GNURadio: ``` sudo apt-get update sudo apt-get install gnuradio ``` 3. 如果在运行make命令时出现错误,如引用\[3\]所示,可能是由于缺少依赖库导致的。在这种情况下,需要安装缺少的依赖库。根据错误提示中提到的缺失的库文件,可以尝试使用以下命令安装相应的库文件: ``` sudo apt-get install liborc-0.4-dev ``` 请按照上述步骤进行操作,应该能够解决"ModuleNotFoundError: No module named 'gnuradio'"的问题。 #### 引用[.reference_title] - *1* *3* [走进“开源SDR实验室” 一起玩转GNU Radio:LoRa实验](https://blog.csdn.net/OpenSourceSDR/article/details/119591575)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [解决ModuleNotFoundError: No module namedgnuradio](https://blog.csdn.net/QAQIknow/article/details/115447777)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sinysama

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值