[英]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 系统上记录的不稳定性有关的问题。
要消除这种可能性,请尝试以下操作:
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.