Import errors with Pycharm

2020-08-13 06:00发布

问题:

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.

回答1:

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.



回答2:

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.



回答3:

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!