我在使用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/

10-13 06:44