繁体   English   中英

Python Zbar DLL加载失败

[英]Python Zbar DLL load fail

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

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

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

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 加载失败。

回溯(最近一次调用最后一次):

文件“D:\\Profiles\\e492507\\Desktop\\barcode reader\\test.py”,第 1 行,在 import zbar ImportError: DLL load failed: The specified module could not be found.

但与我上面提到的类似 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

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

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

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

在对话框中,它说Variable value ,添加一个分号,然后添加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 脚本。

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

ZBar 条码阅读器Windows 安装程序部分- 下载页面它说:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM