// the find
WhyNotHugo/python-barcode
㊙️ Create standard barcodes with Python. No external dependencies. 100% Organic Python.
A small pure-Python library for generating 1D barcodes: EAN-8/13, UPC-A, ISBN, Code 39, Code 128 with GS1-128, ITF and Codabar, written out as SVG or, with Pillow, as raster images. It suits developers who need to print product, book or shipping labels from a script or backend without calling a barcode service or installing a native toolkit.
- The writer is a separate module from the symbologies (barcode/writer.py), and the README limits the Pillow requirement to raster output, so the SVG path stays dependency-free and the library is easy to embed in other services.
- ISBN handling lives in its own module (isxn.py) instead of being bolted onto EAN, and each symbology has its own file with its charset tables in barcode/charsets/, so the encoders can be checked against the specs one at a time.
- The tests are split by concern (checksums, per-symbology encoding, GS1-128, writers, full builds), so a regression shows up in a named file rather than somewhere in one large test module.
- There is no 2D symbology support, no QR Code or Data Matrix. Anyone who needs a code that carries a URL or a longer mixed-character payload will have to add a second library, and the README does not say that up front.
- The 'no external dependencies' line holds only for SVG. PNG output pulls in Pillow, which is a heavy install next to the rest of the package, and that matters in Lambda functions and slim containers.
- The README lists Python 3.9 to 3.13 as supported. Python 3.9 reached end of life in October 2025 and 3.14 is not mentioned, so the stated range is already out of date.
- The README is a short pointer to an external Read the Docs site with no usage example beyond an image. Nothing in the repo shows how to call the library, choose a writer, or set module size, so a first-time reader has to leave GitHub to get started.