如何将 Zbar 导入我的 Python 3.4 脚本?
How do I import Zbar into my Python 3.4 script?
我是编程新手,以前从未使用过Zbar。我正在尝试编写一个简单的脚本,允许我导入 Zbar 并使用它来解码条形码图像。我已经设置了一个脚本来解码使用 Pytesseract 和 Tesseract OCR 的图像中的文本,但我还需要能够解码条形码。我有 Windows 7 32 位,并且正在使用 Python 3.4。我已经安装了 Zbar 并成功地从命令行使用它来解码他们的条形码样本。我尝试使用 >pip install zbar,但我一直收到错误消息:
"fatal error C1083: Cannot open include file: 'zbar.h': No such file or directory
error: command 'C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe' failed with exit status 2"
获取 pytesseract OCR 很轻松,但我在它的条形码部分浪费了很多时间,任何帮助或替代方案将不胜感激。
python 的 ZBar 表示您需要安装 ZBar 库才能使用。 http://zbar.sourceforge.net/download.html
忘掉所有的包装纸。对我来说最简单的解决方案是简单地使用
import os
os.system(r'D:\Winapps\Zbar\bin\zbarimg.exe -d d:\Winapps\Zbar\Examples
\barcode.png')
立即生效。希望这可以帮助其他正在努力解决这个问题的人。
我想我会分享我对这个问题的探索和发现,尽管 @ltadams21 已经找到了解决方法。
简短回答:你不能。 zbar 模块仅与 Python 2 兼容。不兼容性处于 Python C API 的级别,这超出了我的知识范围。
取而代之的是 bug report for this. In the meantime, use the os.system
workaround that @ltadams21 posted, or maybe try zbarlight? (我自己没试过,因为它说它只能读取二维码,我需要一些能读取EAN条码的东西。)
长答案:您可以按照这些步骤进行操作,这代表了我为使其正常工作所做的最大努力,但是(剧透警告)它仍然无法正常工作结束。
- (重新)为 Windows(
zbar-0.10-setup.exe
)安装 zbar,确保勾选 "Development Headers and Libraries" 选项。
- 下载并解压缩 zbar Python package (
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 个对象。
- 如果绝望,请尝试重新
#define
它们以使用 PyLongObject
和 PyLong_Type
代替。失败,因为当然没那么容易。用头撞键盘(轻轻地)。
- 放弃,并使用@ltadams21 发布的
os.system
解决方法。
七个月后您接受了最佳答案,一个简单的解决方案
python3.4+ 于 Windows OS 出现。 zbar 条形码 reader 周围基于 ctypes 的包装器,名为 pyzbar 的包。如果你在 Linux,你需要安装 libzbar0
但你说你正在使用 Windows 并且 zbar 库 被包含为 dll 与 Windows Python 轮子。今天,您只需启动:
pip install pyzbar
包的参考资料:
截至 2016 年 11 月,python3.4+ 的软件包 pyzbar. To import Zbar Windows OS,你只需要启动
pip install pyzbar
这是可能的,因为 pyzbar is a ctypes-based wrapper around the zbar library 作为 dll 包含在 Windows Python 轮子中。
我找到了适用于 3.4+ 的简单解决方案。首先安装pyzbar
pip install pyzbar.
那么下面应该可以工作
import pyqrcode
from pyzbar.pyzbar import decode
from PIL import Image
qr = pyqrcode.create("HORN O.K. PLEASE.")
qr.png("horn.png", scale=6)
decode(Image.open('horn.png'))
print(qr.data)
我是编程新手,以前从未使用过Zbar。我正在尝试编写一个简单的脚本,允许我导入 Zbar 并使用它来解码条形码图像。我已经设置了一个脚本来解码使用 Pytesseract 和 Tesseract OCR 的图像中的文本,但我还需要能够解码条形码。我有 Windows 7 32 位,并且正在使用 Python 3.4。我已经安装了 Zbar 并成功地从命令行使用它来解码他们的条形码样本。我尝试使用 >pip install zbar,但我一直收到错误消息:
"fatal error C1083: Cannot open include file: 'zbar.h': No such file or directory error: command 'C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe' failed with exit status 2"
获取 pytesseract OCR 很轻松,但我在它的条形码部分浪费了很多时间,任何帮助或替代方案将不胜感激。
python 的 ZBar 表示您需要安装 ZBar 库才能使用。 http://zbar.sourceforge.net/download.html
忘掉所有的包装纸。对我来说最简单的解决方案是简单地使用
import os
os.system(r'D:\Winapps\Zbar\bin\zbarimg.exe -d d:\Winapps\Zbar\Examples \barcode.png')
立即生效。希望这可以帮助其他正在努力解决这个问题的人。
我想我会分享我对这个问题的探索和发现,尽管 @ltadams21 已经找到了解决方法。
简短回答:你不能。 zbar 模块仅与 Python 2 兼容。不兼容性处于 Python C API 的级别,这超出了我的知识范围。
取而代之的是 bug report for this. In the meantime, use the os.system
workaround that @ltadams21 posted, or maybe try zbarlight? (我自己没试过,因为它说它只能读取二维码,我需要一些能读取EAN条码的东西。)
长答案:您可以按照这些步骤进行操作,这代表了我为使其正常工作所做的最大努力,但是(剧透警告)它仍然无法正常工作结束。
- (重新)为 Windows(
zbar-0.10-setup.exe
)安装 zbar,确保勾选 "Development Headers and Libraries" 选项。 - 下载并解压缩 zbar Python package (
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 个对象。 - 如果绝望,请尝试重新
#define
它们以使用PyLongObject
和PyLong_Type
代替。失败,因为当然没那么容易。用头撞键盘(轻轻地)。 - 放弃,并使用@ltadams21 发布的
os.system
解决方法。
七个月后您接受了最佳答案,一个简单的解决方案
python3.4+ 于 Windows OS 出现。 zbar 条形码 reader 周围基于 ctypes 的包装器,名为 pyzbar 的包。如果你在 Linux,你需要安装 libzbar0
但你说你正在使用 Windows 并且 zbar 库 被包含为 dll 与 Windows Python 轮子。今天,您只需启动:
pip install pyzbar
包的参考资料:
截至 2016 年 11 月,python3.4+ 的软件包 pyzbar. To import Zbar Windows OS,你只需要启动
pip install pyzbar
这是可能的,因为 pyzbar is a ctypes-based wrapper around the zbar library 作为 dll 包含在 Windows Python 轮子中。
我找到了适用于 3.4+ 的简单解决方案。首先安装pyzbar
pip install pyzbar.
那么下面应该可以工作
import pyqrcode
from pyzbar.pyzbar import decode
from PIL import Image
qr = pyqrcode.create("HORN O.K. PLEASE.")
qr.png("horn.png", scale=6)
decode(Image.open('horn.png'))
print(qr.data)