Edit: the problem is Pycharm is not loading LD_LIBRARY_PATH
environment variable. Everything works if I add this into Pychar's environment. Why isn't it loading it?
I'm having trouble importing modules for gnuradio. First, everything works if I just run the python file from the command line, and everything loads just fine in the interpreter. There is only a problem using pycharm. Furthermore, GNU Radio is installed correctly.
PYTHONPATH=/usr/local/lib/python2.7/site-packages
I added the python interpreter, and since the module loads fine from the interpreter I'm not sure why I had to add the path to pycharm. Anyways, I added the location where the the gnuradio
module is: /usr/local/lib/python2.7/site-packages/gnuradio
; however, it was wrong. The correct path to load was the parent directory: /usr/local/lib/python2.7/site-packages
. I'm wondering why this is.
More importantly, after loading the library I get this compiler error:
File "/usr/local/lib/python2.7/site-packages/gnuradio/gr/runtime_swig.py", line 24, in swig_import_helper
_mod = imp.load_module('_runtime_swig', fp, pathname, description)
ImportError: libgnuradio-pmt-3.7.2git.so.0.0.0: cannot open shared object file: No such file or directory
The file in question is located in /usr/local/lib
, however I've added every possible path to tell it where it is but no luck. Also, I've added /usr/lib:/usr/local/lib
to my LD_LIBRARY_PATH
and ran ldconfig with no success. Only thing I could think of.
What am I doing wrong?
Again, everything works fine if I'm not using PyCharm. This is a question regarding Pycharm specifically.
Did you tried to use virtual environments to setup interpreters on pycharm? if you need some libraries it has a package manager that lets you install libraries with a simple gui.
Let me show you a sample :
When you create a new project
Select the box on the right on interpreter
You will get a screen like this
click on the 3rd button next to the plus, minus and edit, the python logo with a "green v", then a dialog like this will appear :
click on ok and then the prior dialog will be updated like this :
Click on the install button a dialog with a repository list will appear, select the libraries you need and install on the virtual env interpreter.
In PyCharm, you can change the configuration of the file you are trying to run.
Steps to edit configuration using pycharm:
1. Right click on the file in project explorer of the pycharm.
2. Run the file. (This run file with import errors)
3. There is a run icon at the top right corner of pycharm. Next to the arrow, there is an dropdown box. Click on the arrow and select 'Edit configurations ...'
4. In the edit configuration window, change the python interpreter path to the path that has the package you need installed.
5. Like the one shown in the last snapshot, if you have different version of python installed, the file needs to know which python version to run.
Also, if you have both python2 and python3 installed in your machine and if you use pip install, it will install the packages under python2 directory. so you need to used pip3 install if you want your packages under python3 directory.
I faced the similar problem yesterday but on windows 8.1 platform with gnuradio-3.7 version. It seems that "_runtime_swig" is missing in gnuradio-3.7/lib/site-packages/gnuradio/gr
directory, as stated under the raised issue https://github.com/gnuradio/gnuradio/issues/2637. A patch to this problem has been provided for gnuradio-3.8 version.
Upgrading my gnuradio version to 3.8 has installed the missing "_runtime_swig" under gnuradio-3.7/lib/site-packages/gnuradio/gr
directory and then I had to fix the missing dependencies (DLL)s to this module by adding `C:\Program Files\gnuradio-3.8\bin' folder to the "Path" system variable by following the answer in ImportError: No module named _analog_swig
This might be helpful for someone else facing similar problem here. Cheers!