Search code examples
pythonlinuxsudognuradiognuradio-companion

How to fix executing gnuradio-companion without sudo


I want to run the application "gnuradio-companion". I can do this without problems by executing sudo gnuradio-companion. But I do not want to run this with sudo. If I try to run without sudo I get the following. Can you help please?

lenovo@Lenovo-ThinkPad-T440:~$ gnuradio-companion 
Traceback (most recent call last):
  File "/usr/bin/gnuradio-companion", line 112, in <module>
    run_main()
  File "/usr/bin/gnuradio-companion", line 105, in run_main
    sys.exit(main())
  File "/usr/lib/python3/dist-packages/gnuradio/grc/main.py", line 83, in main
    platform.build_library()
  File "/usr/lib/python3/dist-packages/gnuradio/grc/core/platform.py", line 197, in build_library
    utils.hide_bokeh_gui_options_if_not_installed(self.blocks['options'])
  File "/usr/lib/python3.8/collections/__init__.py", line 898, in __getitem__
    return self.__missing__(key)            # support subclasses that define __missing__
  File "/usr/lib/python3.8/collections/__init__.py", line 890, in __missing__
    raise KeyError(key)
KeyError: 'options'

Solution

  •    raise KeyError(key)
    KeyError: 'options'
    

    This error indicates that gnuradio-companion can't find options.block.yml for some reasons.

    First make sure that you do have this file in /usr/share/gnuradio/grc/blocks/ directory and then check what blocks paths are configured in your user's gnuradio config

    $ grep -R blocks_path $HOME/.gnuradio $HOME/.grc_gnuradio/
    

    If you have global_blocks_path variable set but it does not contains the directory where the options.block.yml file is then you can add it or comment out (remove) global_blocks_path

    In case that you don't have some custom configs you can try removing the $HOME/.gnuradio and $HOME/.grc_gnuradio directories as well.