我在使用gnuradio和python程序时遇到一些问题。我试图将gnuradio与gr-satellites的python程序一起使用,以解码来自CubeSats的数据包。当我尝试运行python filename.py
命令时,收到以下输出
Traceback (most recent call last):
File "taurus1_telemetry_parser.py", line 23, in <module>
from gnuradio import gr
File "/usr/local/lib/python3/dist-packages/gnuradio/gr/__init__.py", line 39, in <module>
from .runtime_swig import *
File "/usr/local/lib/python3/dist-packages/gnuradio/gr/runtime_swig.py", line 117
def value(self) -> "PyObject *":
^
SyntaxError: invalid syntax
(以下评论来自原文)
事实证明,当gnuradio运行python3时,我的系统已设置为运行python 2.7.15。根据here.发布的说明,我调整了系统,使其脱离python 3.6.8,这更改了我的系统,使其可以正确运行python3.6.8,但是我认为我安装了gnuradio的方式不正确,因为我仍然遇到错误。
现在,如果运行命令
python3 filename.py
,将得到以下输出:Traceback (most recent call last):
File "taurus1_telemetry_parser.py", line 26, in <module>
from . import by701_telemetry
ImportError: cannot import name 'by701_telemetry'
我已使用
pybombs remove gnuradio uhd
命令成功卸载了gnuradio的pybombs版本,如下面的注释所示,仅安装了ppa版本。由于gnuradio配置存在很多问题,因此我尝试查看是否可以轻松卸载ppa版本并从gnuradio开始重新安装。我进入了gnuradio的目录(Desktop/gnuradio/build)并尝试了
make uninstall
。进行make uninstall
进程不会产生任何错误,但这似乎并没有从我的系统中完全删除gnuradio。gnuradio仍然可以在
/usr/local/lib/python3/dist-packages
中找到,当我尝试运行python脚本时,仍然出现ImportError。但是,现在当我输入head /usr/local/bin/gnuradio-companion
时,会收到以下消息:head: cannot open '/usr/local/bin/gnuradio-companion' for reading: No such file or directory
which gnuradio-companion
的输出为: /usr/bin/gnuradio-companion
我有点迷失在现在该做什么。关于如何固定或完全卸载gnuradio的任何想法?
最佳答案
问题很可能是当gnuradio已使用python3编译时,您正在使用python2启动程序。
您需要明确指定需要在程序的第一行使用python3解释器(此行称为shebang)
#!/usr/bin/python3
或通过以下方式启动程序
$ python3 ./my_program.py
有两个版本可能会导致很多问题。我的建议是使用PPA版本并删除与pybombs一起安装的版本
$ pybombs remove gnuradio uhd
关于python-3.x - Gnuradio可能的路径问题阻止使用python程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59906878/