A Python wrapper of ZXing library. python-zxing does not work properly and is out of maintenance. So I decide to create this repository so that Pythoneers can take advantage of ZXing library with minimum effort.
- Super easy to get hands on ZXing with Python
- Structured outputs
- Scan multiple barcodes in one picture
- Scan multiple pictures in parallel, which seepd up 77%.
Installing from Github source is recommended :
git clone https://github.com/ChenjieXu/pyzxing.git
cd pyzxing
python setup.py install
It is also possible to install from PyPI:
pip install pyzxing
A ready-to-go jar file is available with release, but I can not guarantee that this file will work properly on your PC. You may run test script before building ZXing. Pyzxing will download compiled Jar file automatically and call unit test. For those who haven't installed Java, I strongly recommend you to install openjdk8.
python -m unittest src.test_barcode
If failed, build ZXing using following commands.
git submodule init
git submodule update
cd zxing
mvn install -DskipTests
cd javase
mvn -DskipTests package assembly:single
from pyzxing import BarCodeReader
reader = BarCodeReader()
results = reader.decode('/PATH/TO/FILE')
# Or file pattern for multiple files
results = reader.decode('/PATH/TO/FILES/*.png')
print(results)
Or you may simply call it from command line
python scanner.py -f /PATH/TO/FILE