我对编程相当陌生,以前从未使用过Zbar。 我想写一个简单的脚本,将允许我导入Zbar并使用它来解码条形码图像。 我已经设置了一个脚本来解码使用Pytesseract和Tesseract OCR的图像中的文本,但是我也需要能够解码条形码。 我有Windows 7 32位,并且正在使用Python 3.4。 我已经安装了Zbar,并成功地从命令行中使用它来解码他们的条形码样本。 我曾尝试使用> PIP安装ZBAR,但我不断收到错误:
“致命错误C1083:无法打开包含文件:'zbar.h':没有这样的文件或目录错误:命令'C:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \ BIN \ cl.exe'失败,退出状态2”
获得pytesseract OCR是无痛的,但我浪费了很多时间在这个条码部分,任何帮助或替代品将不胜感激。
我想我会分享我的探索和发现与这个问题有关,即使@ ltadams21已经找到了解决办法。
简短的回答:你不能。 zbar模块只与Python 2兼容。不兼容性在Python C API级别,这是超越我的肯定的深刻魔力。
这是一个错误报告 。 同时,使用@ ltadams21发布的os.system
解决方法,或者尝试使用zbarlight ? (我自己没有尝试过,因为它只读取QR码,我需要读取EAN条码。)
漫长的回答:您可以按照这些步骤进行操作,这些步骤代表了我最大的努力来实现它,但是(扰流警报)它仍然不会在最后工作。
zbar-0.10-setup.exe
),确保勾选“开发头文件和库”选项。 zbar-0.10.tar.bz2
)。 setup.py
。 libraries
的行,并在其下面插入一个新行,如下所示(检查系统上的路径与我的系统上的路径相同): libraries = [ 'zbar' ], include_dirs = ['C:/Program Files (x86)/ZBar/include'],
python setup.py install
。 PyIntObject
和PyInt_Type
。 发现这些是仅Python 2的对象。 PyLongObject
,试着重新定义它们来改用PyLongObject
和PyLong_Type
。 失败,因为当然不是那么容易。 把头撞向键盘(轻轻地)。 os.system
解决方法。 忘记与所有的包装摔跤。 对我来说最简单的解决方案就是简单的使用
进口操作系统
os.system(r'D:\ Winapps \ Zbar \ bin \ zbarimg.exe -dd:\ Winapps \ Zbar \ Examples \ barcode.png)
立即工作。 希望这可以帮助任何人解决这个问题。
Python的ZBar说,你需要安装ZBar库才能工作。 http://zbar.sourceforge.net/download.html
对于python3 ,如果你在Linux上,有一个名为pyzbar的软件包,你需要安装libzbar0
但是你说你正在使用Windows,并且包含了dll。