【问题标题】:Python Zbar DLL load failPython Zbar DLL加载失败
【发布时间】:2013-12-31 16:14:30
【问题描述】:

首先,我知道similar SO Question,但我的问题略有不同,该问题的答案并没有解决我的问题。所以,我在这里创建一个新帖子。

我已经从 http://zbar.sourceforge.net/download.html 下载了 Zbar Installer 并成功安装(没有错误消息)。

但是,当我运行以下脚本时,

import zbar
from PIL import Image

# create a reader
scanner = zbar.ImageScanner()

# configure the reader
scanner.parse_config('enable')

# obtain image data
pil = Image.open('zbartest2.png').convert('L')
width, height = pil.size
raw = pil.tostring()

# wrap image data
image = zbar.Image(width, height, 'Y800', raw)

# scan the image for barcodes
scanner.scan(image)

# extract results
for symbol in image:
    # do something useful with results
    print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data

# clean up
del(image)

它给了我一个错误信息,说 DLL 加载失败。

Traceback(最近一次调用最后一次):

文件“D:\Profiles\e492507\Desktop\barcode reader\test.py”,第 1 行,在 import zbar ImportError: DLL load failed: 找不到指定的模块。

但与我上面提到的类似 SO 问题不同,当我在 python IDLE shell 中键入它时,它可以正常工作。

import zbar
zbar.version()

(0, 10)

是什么导致了问题,我该如何解决?

仅供参考:我在 windows Xp pro 32 位上使用 Python 2.7.3

更新:1

我发现如果我将脚本和图像复制到 python 目录C:\Python27\ 它可以正常工作,没有任何问题。

但是,当我将脚本和图像移动到其他位置时,我收到了与上面发布的相同的错误消息。

我应该如何解决这个问题,以便只要条形码图像可用,我就可以在计算机的任何位置执行我的脚本?

更新:2 (仅供参考:与问题没有直接关系)

到目前为止,我无法使用我发现的所有方法来解决这个问题。所以,我提出了自己的愚蠢解决方案。

我将使用reportlab 而不是Barcodes 绘制的简单表格,并相应地为单元格着色(黑色代表1,白色代表0)以表示二进制数字。

所以,第 69 号将是这样的

然后,我可以使用PIL 检测黑白方块并将其转换回二进制然后转换为十进制。仅供参考,我只处理十进制数字。没有字母或其他东西。我知道这很愚蠢,但绝望的时候需要采取绝望的措施:P

【问题讨论】:

    标签: python dll importerror zbar


    【解决方案1】:

    当依赖 DLL 在您的 PATH 中某处时,它听起来好像在工作,而当您将它们移到其他地方时它会中断。该错误特别说明它无法加载 DLL(或其依赖项之一),因此我认为这不是与 Windows 系统上记录的不稳定性有关的问题。

    要消除这种可能性,请尝试以下操作:

    1. 右键单击我的电脑,然后单击属性
    2. 点击高级标签。
    3. 点击环境变量
    4. 找到并选择PATH 条目,然后单击编辑

    在显示变量值的对话框中,添加一个分号,然后是安装libzbar-0.dll 的文件夹的路径。

    所以,如果 libzbar-0.dll 在,比如说,C:\ZBar\Bin 并且您现有的 PATH 值是:

    C:\folder1;C:\folder2;C:\some other folder

    然后将变量值改为:

    C:\folder1;C:\folder2;C:\some other folder;C:\ZBar\Bin

    然后单击 确定 以保存所有更改并 - 为过度杀戮 - 重新启动。这是因为大多数应用程序仅在首次启动时才读取环境变量,如果您不确定应用程序是真的重新启动还是被最小化,有时会让人感到困惑。

    现在看看您是否可以从其他文件夹运行 Python 脚本。

    【讨论】:

      【解决方案2】:

      zbaryou 安装的 Windows 版本 (zbar-0.10-setup.exe) 包括其README.windows文件中所述的“仅命令行程序”。它还在Windows Installation GuideRunning ZBar部分中提到“ZBar 的当前(0.10)版本仅附带命令行程序”。

      ZBar bar code reader - Download 页面的 Windows Installer 部分中显示:

      “请注意,Windows 端口处于不稳定的测试阶段。”

      换句话说,它还不能用于 Windows 版本的 Python 解释器。

      【讨论】:

      • 我可以在我的windows 8 电脑上使用相同的zbar 安装程序和相同的python 版本运行相同的脚本。然而,我似乎无法让它在我的 windows xp 机器上运行。
      【解决方案3】:

      要解决.dll错误,需要安装C++依赖,点击以下链接下载:

      https://www.microsoft.com/en-US/download/details.aspx?id=40784

      【讨论】:

        猜你喜欢
        • 2015-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-13
        • 2011-06-28
        相关资源
        最近更新 更多