环境
- OS: windows 10 64位
- Compiler: VS2015(C++)
- Python: 2.7 32位
- zbar(dll): zbar-0.10-setup.exe
- zbar(python): zbar-0.10.tar.bz2
安装
安装zbar库(dll)及其头文件
- 从
https://sourceforge.net/projects/zbar/
上下载zbar-0.10-setup.exe
。 - 安装时要勾选
Development Headers and Libraries
。 - 安装目录:
D:\programs\ZBar
(示例)。
配置PATH、INCLUDE和LIB环境变量
PATH
中添加D:\programs\ZBar\bin。INCLUDE
中添加D:\programs\ZBar\include。LIB
中添加D:\programs\ZBar\lib。
安装zbar python包
- 建议从
https://github.com/npinchot/zbar
上下载zbar python包(解决了import zbar时崩溃问题)。 - 不要在官网
https://pypi.python.org/pypi/zbar/0.10
上下载(未解决import zbar时崩溃问题)。 - 修改zbar python包里的
setup.py
:把libraries = [ 'zbar' ]
改为libraries = [ 'libzbar-0' ]
。 - 安装zbar python包,在命令行中执行
python install setup.py
。 - 检查:
- 在当前目录下会生成
build\lib.win32-2.7\zbar.pyd
文件。 - 在
python安装目录\Lib\site-packages
下同样会有zbar.pyd文件。
- 在当前目录下会生成
pyd是一个dll文件。zbar.pyd是zbar的python包装器,引用了D:\programs\ZBar\bin\libzbar-0.dll。
总结
python install setup.py提示找不到zbar.h
- zbar python包编译时要引用zbar.h及其libzbar-0.lib等。应安装zbar库及其头文件,并配置好INCLUDE和LIB环境变量。
python install setup.py执行成功,在import zbar时提示 ImportError: DLL load failed。
- 没有把zbar库(libzbar-0.dll等)加入到PATH环境变量中去。
import zbar时崩溃
- 这是
imagescanner.c
中的一个bug。pypi官网上的安装包并没有解决这个问题。建议去https://github.com/npinchot/zbar
上下载。参考https://github.com/npinchot/zbar/commit/d3c1611ad2411fbdc3e79eb96ca704a63d30ae69
。