segno
QR Code and Micro QR Code generator for Python
What it is and what it does
Segno is a pure-Python QR code and Micro QR code generator that implements the ISO/IEC 18004:2015(E) standard. It encodes data into QR codes with no external compiled dependencies, relying only on importlib-metadata. The library supports both standard QR codes and the smaller Micro QR variant, automatically choosing the minimal version needed or allowing explicit control via factory functions like make_qr() and make_micro().
The package outputs to many formats—SVG, PNG, PDF, EPS, PAM, PBM, PPM, LaTeX (PGF/TikZ), XBM, and XPM—all without requiring external libraries. It includes high-level functions for encoding contact data (vCard, MeCard), EPC QR codes, and WiFi configurations, plus a command-line interface for quick generation. Structured Append mode allows splitting large messages across multiple QR codes, and Hanzi mode supports Chinese character encoding.
Use it for:
- Generate QR codes for URLs, contact information, or WiFi credentials in web applications or scripts
- Create Micro QR codes for space-constrained applications like product labels or small displays
- Export QR codes to multiple formats (PNG, SVG, PDF) for printing, web embedding, or document inclusion
- Encode structured data like vCard contact information or EPC payment codes into scannable QR codes
- Split large messages across multiple QR codes using Structured Append mode for resilience or distribution
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Generates QR codes and Micro QR codes conforming to ISO/IEC 18004:2015(E), with output to multiple formats including SVG, PNG, PDF, and EPS without external dependencies.
Yes. Segno is a stable, actively maintained library with no vulnerabilities, low install friction, and a permissive license. It is well-suited for any Python project needing QR code generation without external compiled dependencies. The broad format support and standards compliance make it a practical choice for production use.
Install
segno on PyPI
pip
pip install segnouv
uv add segnopoetry
poetry add segnoInstalling segno
Before you install
Low friction: pure Python with only importlib-metadata as a runtime dependency. Active maintenance with a recent commit on 2026-07-23 and no reported vulnerabilities.
License in practice
Permissive license (BSD) allows commercial and private use with minimal restrictions.
Quickstart
pip install segno
import segno
qrcode = segno.make('Yellow Submarine')
qrcode.save('yellow-submarine.png')
Verify before relying
- Whether the package's claimed 98% test coverage and ISO/IEC 18004:2015(E) conformance have been independently validated
- Performance comparison claims against other pure-Python QR encoders and whether they remain current
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.5) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — importlib-metadata |
| Maintenance | actively maintained — 520 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,234,809/month — #2,689 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: segno-1.6.6-py3-none-any.whl
Keywords: QR Code, Micro QR Code, ISO/IEC 18004, ISO/IEC 18004:2006(E), ISO/IEC 18004:2015(E), qrcode, QR, barcode, matrix, 2D
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
django-qr-codeGenerates QR codes as embedded SVG or PNG…
permissive · top 15,000 on PyPI
PyQRCodePyQRCode generates QR codes in pure Python and…
permissive · top 15,000 on PyPI
pyStrichpyStrich generates 1D and 2D barcodes (Code 39,…
permissive · top 15,000 on PyPI
qrcodeGenerates QR codes as images (PNG, SVG) or…
permissive · top 1,000 on PyPI
pdf417genEncodes text and binary data into PDF417 2D…
permissive · top 15,000 on PyPI
CairoSVGCairoSVG converts SVG files to PDF, EPS, PS,…
copyleft · top 5,000 on PyPI
treepoemGenerates barcodes and QR codes as image…
permissive · top 5,000 on PyPI
ppf-datamatrixGenerates datamatrix codes (2D barcodes) in SVG…
permissive · top 15,000 on PyPI
pyzxingDecode barcodes and QR codes from images or…
permissive · top 15,000 on PyPI
barcodenumberValidates product codes across multiple barcode…
copyleft · top 15,000 on PyPI