-1

I can't program in python at all. I'm just trying to run the grgsm (gnu radio gsm) program, which is written in python. I get following error:

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/grgsm/__init__.py", line 48, in <module>
from .grgsm_swig import *
  File "/usr/lib/python3.8/site-packages/grgsm/grgsm_swig.py", line 13, in <module>
    from . import _grgsm_swig
ImportError: libboost_program_options.so.1.71.0: cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "/usr/bin/grgsm_livemon", line 37, in <module>
from grgsm import arfcn
  File "/usr/lib/python3.8/site-packages/grgsm/__init__.py", line 48, in <module>
from .grgsm_swig import *
  File "/usr/lib/python3.8/site-packages/grgsm/grgsm_swig.py", line 13, in <module>
from . import _grgsm_swig
ImportError: libboost_program_options.so.1.71.0: cannot open shared object file: No such file or directory

From the above message, I concluded that in the 13th line of the file "/usr/lib/python3.8/site-packages/grgsm/grgsm_swig.py" there is an import of the file "libboost_program_options.so.1.71.0", which is missing. Well, but in the 13th line of this file there is nothing about it. It looks like this:

# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.1
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _grgsm_swig                # 13th line
else:
    import _grgsm_swig

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

I also don't know why python wants this version of boost. If I knew where it is imported, I would simply change it to libboost_program_options.so without the version suffix (because of course I have boost installed).

  • 5
    It is not python itself that wants that library. It's the _grgsm_swig shared library. You need to update your grgsm module to the newest version, or rebuild it from source. – n. m. could be an AI Mar 29 '20 at 20:42
  • But it's just an old program ... – Roman Kwaśniewski Mar 29 '20 at 21:28
  • It is OK to have two or more versions of the various "libboost. *name* .so. *version* ". ... They all have unique file names. – Knud Larsen Mar 29 '20 at 22:16
  • My package manager says they conflict. – Roman Kwaśniewski Mar 29 '20 at 22:46
  • Please edit your question : The `edit` button → to include OS name and version,,,, and the current boost version. – Knud Larsen Mar 30 '20 at 13:04
  • 1
    @RomanKwaśniewski if you only have the new version, you need to rebuild gr-gsm. No way around that. It's really as simple as that, that's what library versioning is for: Something has changed within the library, either functionally (API) or machine-code-interface-wise (ABI), now it can't be used the way it was before. Recompile gr-gsm (which is really simple), done. – Marcus Müller Mar 31 '20 at 12:03

1 Answers1

0

Solution can be found here. Generally, uninstall it and reinstall its dependencies in the correct order.