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.

3条回答
Ridiculous、
2楼-- · 2020-08-13 06:25

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

enter image description here

Select the box on the right on interpreter

You will get a screen like this

enter image description here

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 :

enter image description here

click on ok and then the prior dialog will be updated like this :

enter image description here

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.

查看更多
ら.Afraid
3楼-- · 2020-08-13 06:27

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)enter image description here 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 ...'enter image description here 4. In the edit configuration window, change the python interpreter path to the path that has the package you need installed.enter image description here 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.enter image description here

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.

查看更多
贪生不怕死
4楼-- · 2020-08-13 06:35

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!

查看更多
登录 后发表回答