Возможные проблемы с Gnuradio препятствуют использованию python программ - PullRequest
1 голос
/ 25 января 2020

У меня проблемы с использованием 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

(НИЖЕ КОММЕНТАРИИ, ИЗМЕНЕННЫЕ ИЗ ОРИГИНАЛЬНОГО ПОСТА)

Оказывается, моя система настроена для запуска python 2.7.15, когда gnuradio запускает python3. Я настроил свою систему так, чтобы она работала с 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'

Я успешно удалил версию gnuradio для pybombs, используя команду pybombs remove gnuradio uhd, как было предложено в комментарии ниже, оставляя только установленную версию ppa.

Поскольку было много проблем с конфигурацией gnuradio, я попытался выяснить, могу ли я легко удалить версию ppa и просто запустить fre sh с gnuradio. Я зашел в свой каталог для gnuradio (Desktop / gnuradio / build) и попробовал make uninstall. Выполнение процесса make uninstall не привело к возникновению ошибок, но, похоже, это полностью не удаляло gnuradio из моей системы.

gnuradio все еще можно найти в /usr/local/lib/python3/dist-packages, и я все еще получаю ImportError, когда пытаюсь запустить сценарий python. Однако теперь, когда я ввожу 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 можно исправить или удалить полностью?

1 Ответ

1 голос
/ 25 января 2020

Скорее всего, проблема в том, что вы запускаете вашу программу с python2, в то время как gnuradio был скомпилирован с python3.

Вам необходимо явно указать, что интерпретатор python3 должен использоваться на первая строка вашей программы (эта строка называется shebang )

#!/usr/bin/python3

или запустите вашу программу следующим образом

$ python3 ./my_program.py

Я установил gnuradio через ppa, а также pybombs.

Наличие двух версий может вызвать много проблем. Я рекомендую использовать версию PPA и удалить версию, установленную с pybombs

$ pybombs remove gnuradio uhd
...