【发布时间】:2020-07-10 05:17:14
【问题描述】:
我根本不会在 python 中编程。我只是想运行用python编写的grgsm(gnu radio gsm)程序。我收到以下错误:
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
从上面的消息中,我得出结论,在文件“/usr/lib/python3.8/site-packages/grgsm/grgsm_swig.py”的第 13 行中有一个文件“libboost_program_options.so”的导入。 1.71.0",这是缺失的。好吧,但是在这个文件的第 13 行中没有任何内容。它看起来像这样:
# 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__
我也不知道为什么 python 想要这个版本的 boost。如果我知道它是从哪里导入的,我只需将其更改为 libboost_program_options.so 而不带版本后缀(因为我当然安装了 boost)。
【问题讨论】:
-
不是 python 本身需要那个库。它是 _grgsm_swig 共享库。您需要将您的 grgsm 模块更新到最新版本,或者从源代码重新构建它。
-
但它只是一个旧程序......
-
可以有两个或多个版本的各种“libboost.name.so.version”。 ...它们都有唯一的文件名。
-
我的包管理器说它们有冲突。
-
@RomanKwaśniewski 如果你只有新版本,你需要重建 gr-gsm。没办法。就这么简单,这就是库版本控制的用途:库中发生了一些变化,无论是功能(API)还是机器代码接口(ABI),现在它不能像以前那样使用了.重新编译gr-gsm(其实很简单),完成。
标签: python linux libraries gnuradio