【问题标题】:python wants an old version of the library, which I don't have, but I have a new onepython想要一个旧版本的库,我没有,但我有一个新版本
【发布时间】: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


【解决方案1】:

可以在here找到解决方案。一般来说,卸载它并按照正确的顺序重新安装它的依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多