I would like to make calls from python to blocks in gnuradio 3.8 from PyCharm CE 2019.2 on Ubuntu 18.04. The project interpreter set in Pycharm is the virtual environment created when the pycharm project was created. I have seen suggestions (How do I import modules in pycharm?) to add a line like:
/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages
to the interpreter path (under File->Settings->Project:my_proj->Project Interpreter->Gear Symbol->Show All->Show Paths for Selected Interpreter).
From the python console, this results in the following error when I attempt to import gnuradio blocks:
PyDev console: starting.
Python 3.6.8 (default, Oct 7 2019, 12:59:55)
[GCC 8.3.0] on linux
import gnuradio
from gnuradio import blocks
Traceback (most recent call last):
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/blocks_swig0.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
File "<frozen importlib._bootstrap>", line 571, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 922, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: libgnuradio-blocks.so.3.8.0: cannot open shared object file: No such file or directory
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/__init__.py", line 32, in <module>
from .blocks_swig import *
File "/snap/pycharm-community/167/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/blocks_swig.py", line 24, in <module>
from .blocks_swig0 import *
File "/snap/pycharm-community/167/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/blocks_swig0.py", line 17, in <module>
_blocks_swig0 = swig_import_helper()
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/blocks_swig0.py", line 16, in swig_import_helper
return importlib.import_module('_blocks_swig0')
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_blocks_swig0'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/blocks_swig0.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
File "<frozen importlib._bootstrap>", line 571, in module_from_spec
File "<frozen importlib._bootstrap_external>", line 922, in create_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: libgnuradio-blocks.so.3.8.0: cannot open shared object file: No such file or directory
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/snap/pycharm-community/167/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/__init__.py", line 36, in <module>
from .blocks_swig import *
File "/snap/pycharm-community/167/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/blocks_swig.py", line 24, in <module>
from .blocks_swig0 import *
File "/snap/pycharm-community/167/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/blocks_swig0.py", line 17, in <module>
_blocks_swig0 = swig_import_helper()
File "/home/my_name/devel/gnuradio3_8/lib/python3.6/dist-packages/gnuradio/blocks/blocks_swig0.py", line 16, in swig_import_helper
return importlib.import_module('_blocks_swig0')
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_blocks_swig0'
I believe that I have libgnuradio installed:
~/devel/gnuradio3_8/lib$ ls
cmake libgnuradio-qtgui.so.3.8.0
libgnuradio-analog.so libgnuradio-qtgui.so.3.8.0.0
libgnuradio-analog.so.3.8.0 libgnuradio-runtime.so
libgnuradio-analog.so.3.8.0.0 libgnuradio-runtime.so.3.8.0
libgnuradio-audio.so libgnuradio-runtime.so.3.8.0.0
libgnuradio-audio.so.3.8.0 libgnuradio-trellis.so
libgnuradio-audio.so.3.8.0.0 libgnuradio-trellis.so.3.8.0
libgnuradio-blocks.so libgnuradio-trellis.so.3.8.0.0
libgnuradio-blocks.so.3.8.0 libgnuradio-uhd.so
libgnuradio-blocks.so.3.8.0.0 libgnuradio-uhd.so.3.8.0
libgnuradio-channels.so libgnuradio-uhd.so.3.8.0.0
libgnuradio-channels.so.3.8.0 libgnuradio-utilities.so
libgnuradio-channels.so.3.8.0.0 libgnuradio-utilities.so.1.0.0git
libgnuradio-digital.so libgnuradio-utilities.so.v1.0-compat-xxx-xunknown
libgnuradio-digital.so.3.8.0 libgnuradio-vocoder.so
libgnuradio-digital.so.3.8.0.0 libgnuradio-vocoder.so.3.8.0
libgnuradio-dtv.so libgnuradio-vocoder.so.3.8.0.0
libgnuradio-dtv.so.3.8.0 libgnuradio-wavelet.so
libgnuradio-dtv.so.3.8.0.0 libgnuradio-wavelet.so.3.8.0
libgnuradio-fec.so libgnuradio-wavelet.so.3.8.0.0
libgnuradio-fec.so.3.8.0 libgnuradio-zeromq.so
libgnuradio-fec.so.3.8.0.0 libgnuradio-zeromq.so.3.8.0
libgnuradio-fft.so libgnuradio-zeromq.so.3.8.0.0
libgnuradio-fft.so.3.8.0 libuhd.so
libgnuradio-fft.so.3.8.0.0 libuhd.so.3.14.1
libgnuradio-filter.so libvolk.so
libgnuradio-filter.so.3.8.0 libvolk.so.2.0
libgnuradio-filter.so.3.8.0.0 pkgconfig
libgnuradio-pmt.so python2.7
libgnuradio-pmt.so.3.8.0 python3
libgnuradio-pmt.so.3.8.0.0 python3.6
libgnuradio-qtgui.so uhd
What is the right way to import gnuradio?