【问题标题】:How do I troubleshoot zbar?如何对 zbar 进行故障排除?
【发布时间】:2018-01-23 18:04:03
【问题描述】:

在 Fedora Linux 26 上尝试在 python 下导入 zbar 时,我收到以下错误:

>>> import zbar
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "zbar/__init__.py", line 1, in <module>
    from .zbar import *
  File "zbar/zbar.py", line 70, in <module>
    _ZB = load_zbar()
  File "zbar/zbar.py", line 63, in load_zbar
    '\n\n'.join(err_txt))
RuntimeError: zbar/_zbar.c:
zbar/_zbar.c: invalid ELF header

搜索此问题的解决方案确实让我找到了建议安装适当软件包的another StackOverflow question,但它并没有特别有用,因为我已经使用我的软件包管理器 dnf 安装了 zbar 和 zbar-devel。我使用the module's website.上提供的单一指令安装了这个python库本身@

“无效的 ELF 标头”是什么意思?我应该采取哪些步骤来解决此问题?简而言之,我如何让 zbar 工作?

【问题讨论】:

  • 看起来,在我的特定 scnerio 中,解决方案是使用不同的 python 模块。我发现一个名为 zbar-py 的工具可以正常工作,没有任何额外的头痛。

标签: python fedora zbar


【解决方案1】:

通常这意味着该软件包是为与您使用的架构不同的架构构建的。 http://zbar.sourceforge.net/download.html 检查链接,我没有看到 Fedora 26 列出。

基于 Mattdm 的评论: 另一种可能性是 Pypi 包已过时(最后一次更新是 2009 年)。您通过最新版本的包管理器安装,然后通过 Pip(旧版本)执行安装。旧版本覆盖了正确的版本。 Pypi 包版本为 0.10。 fedora 软件包版本应该是 0.20 之类的。使用正确的 pip 版本运行 pip freeze | grep zbar

【讨论】:

  • 我不认为是这样。请注意,ADS103 已经从 Fedora 存储库安装了 zbarzbar-devel(它肯定是为正确的架构构建的)。
  • @mattdm,但是,帖子还说“我使用模块网站上提供的单一指令安装了这个 python 库本身。”
【解决方案2】:

看起来 python 绑定包含在上游 zbar 源中,但由于某种原因没有与 Fedora 打包。 (有一个zbar-pygtk,但我认为这不是你想要的。)我认为最好的办法是让 Fedora 中的包的维护者(参见https://src.fedoraproject.org/rpms/zbar)也构建 python 绑定。

看起来最新的上游发布是十年前的事了,PyPi 模块似乎就是基于此。 Fedora 的软件包更新,基于来自https://linuxtv.org/downloads/zbar/ 的东西。来自压缩包中的NEWS 文件:

version 0.20 (2017-04-11):
  As upstream didn't have any version since 2009, created a ZBar fork at linuxtv.org. This release improves a lot V4L2 support, by using libv4l2
  to handle formats that are alien to ZBar, making it compatible with a lot
  more webcam models. Qt support was also updated, making it compatible
  with Qt5. ZBar now have two other GUI applications (zbarcam-qt and
  zbarcam-gtk). With zbarcam-qt, it is now possible to adjust the camera
  controls, making easier to read barcodes using a camera.

可能较旧的模块和较新的(分叉的)zbar 不能很好地协同工作。如果“与打包者交谈”路线不起作用或不够快,我建议删除 Fedora 包,从源代码构建 zbar 本身,然后重试。

【讨论】:

    猜你喜欢
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    相关资源
    最近更新 更多