我对编程很陌生,以前从未使用过zbar。我正在尝试编写一个简单的脚本,将允许我导入zbar并使用它解码条码图像。我已经建立了一个脚本来解码使用pytesseract和tesseract ocr的图像中的文本,但我也需要能够解码条码。我有32位的Windows7,并且正在使用Python3.4。我已经安装了zbar并在命令行成功地使用它来解码他们的条码样本。我试过使用>pip install zbar,但我一直收到错误消息:
“致命错误C1083:无法打开include文件:'zbar.h':没有这样的文件或目录
错误:命令“c:\程序文件\Microsoft Visual Studio 10.0\vc\bin\cl.exe”失败,退出状态为2“
得到pytesseract ocr是无痛的,但我已经浪费了很多时间在这个条码部分,任何帮助或替代将非常感谢。

最佳答案

尽管@ltadams21找到了解决方法,但我还是想和大家分享我在这个问题上的探索和发现。
简单的回答是:不行,zbar模块只与python 2兼容。这些不兼容是在PythonC API的级别上,这是我无法理解的深层魔法。
这个有一个bug report。同时,使用@ltadams21发布的os.system解决方案,或者尝试使用zbarlight代替?(我自己没有试过,因为它说它只读二维码,我需要读EAN条码的东西。)
长话短说:你可以跟着这些步骤走,这代表了我尽最大努力让它工作,但(扰流器警报)它最终还是不会工作。
(重新)安装zbar for windows(zbar-0.10-setup.exe),确保勾选“开发头和库”选项。
下载并解压缩zbar Python packagezbar-0.10.tar.bz2)。
在首选文本编辑器中打开setup.py
滚动到底部,找到开始libraries的行,然后在它下面插入一个新行,如下所示(检查系统上的路径是否与我的相同):

            libraries = [ 'zbar' ],
            include_dirs = ['C:/Program Files (x86)/ZBar/include'],

打开解压包内的命令提示符并运行python setup.py install
注意,新的错误现在与PyIntObjectPyInt_Type有关。发现这些是python 2-only对象。
如果不顾一切,试着让他们改用#definePyLongObject。失败,当然不是那么容易。用头轻敲键盘。
放弃,使用@ltadams21发布的PyLong_Type解决方案。

10-08 08:46
查看更多