无法在 GNU Radio 中导入名称 uhd Python

Cannot import name uhd in GNU Radio Python

我在 Ubuntu 14.04 中成功安装了 GNU Radio。我测试了安装并返回 100% 通过。但是,当我 运行 它与 python 代码。它返回的错误如

File "/home/gnuradio-3.7.5/gr-digital/examples/narrowband/uhd_interface.py", line 23, in <module>
from gnuradio import gr, uhd
ImportError: cannot import name uhd

我的错误是什么?你能帮我解决吗?谢谢

我的导入是

from gnuradio import *
from gnuradio import gr, digital
from gnuradio import eng_notation
from gnuradio.eng_option import eng_option
from optparse import OptionParser

# from current dir
from receive_path  import receive_path
from transmit_path import transmit_path
from uhd_interface import uhd_transmitter
from uhd_interface import uhd_receiver

您尝试过 from gnuradio import*import gnuradio 吗?如果这不起作用,那么如果存在此类功能,则必须在 gnuradio 的库中手动检查它。还要检查您是否为 python 2.7

安装了正确的版本

这可能是因为您的 GNU Radio 是在不支持 UHD 的情况下构建的,因此 gr-uhd 组件不可用。

这是一个经常遇到的障碍,所以我有一个"surefire"方法:

  • 卸载所有可能损坏的 GNU Radio 和 UHD 版本
  • 从源代码干净地安装它们

她的行事方式:

/home/gnuradio-3.7.5/gr-digital/examples/narrowband/uhd_interface.py

从您的道路来看,您正在亲手构建 GNU Radio。 顺便说一句,这是一条糟糕的道路; /home/ 为用户主目录保留,不应有名为 gnuradio-3.7.5 的用户,因为带有 . 的用户名是自找麻烦。

所以

cd /home/gnuradio-3.7.5/build
sudo make uninstall

应该删除从源代码构建的所有内容。

然后,确保没有冲突 Ubuntu 安装

sudo apt-get remove gnuradio uhd-host libuhd003

之后,使用pybombs安装一切:

#assuming you have git installed:
git clone --recursive git://github.com/pybombs/pybombs
cd pybombs
./pybombs install gnuradio uhd

那会问你几个问题,其中一个是 pybombs 将在其中安装 GNU Radio 的前缀目录,以及 Ubuntu 本身不提供的所有必要内容。我建议将其保留为默认值(只需按回车键),然后在 pybombs 完成下载、构建和安装所有内容后,运行

./pybombs env
echo "source {directory that everything got installed to}/setup_env.sh" >> ~/.bashrc

然后,您得到了一个不错的最新 GNU Radio 安装,其中包含 gr-uhd。请注意,您不得 从Ubuntu 安装 gnuradio 或 uhd; Ubuntu的UHD版本太旧,不支持当前的任何USRP系列。


如果软件安装成功后你仍然报错GNU Radio找不到USRP设备,.