num2words
Modules to convert numbers to words. Easily extensible.
What it is and what it does
num2words is a library that converts numeric values into their written word equivalents across multiple languages. It handles cardinal numbers (42 → 'forty-two'), ordinal forms (42 → 'forty-second'), year formats, and currency representations. The library supports language variants including English, Spanish, French, German, and many others, with locale-specific fallback behavior when exact regional variants are unavailable.
The package is designed for internationalization and localization tasks where numeric output needs to be human-readable in multiple languages. It exposes a single primary function with optional parameters to specify the conversion type and target language. The library includes both a Python API and a command-line interface, making it suitable for integration into applications or standalone text processing workflows.
Use it for:
- Generate human-readable invoice or receipt text in customer-preferred languages for e-commerce or billing systems.
- Convert numeric data to words for text-to-speech or accessibility features in multilingual applications.
- Format currency amounts as spelled-out text for legal documents, checks, or formal correspondence.
- Localize numeric output in reports, forms, or user-facing content for international audiences.
- Create ordinal representations for ranking, positioning, or date formatting in multilingual contexts.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts numbers to their word representations in multiple languages, supporting cardinal numbers, ordinals, years, and currency formats.
Yes. The package is stable (Production/Stable status), widely used (9461923 monthly downloads, top_5000 tier), has no known vulnerabilities, and imposes minimal install friction. The copyleft license is a consideration for proprietary applications but not a barrier for most use cases. The 605-day gap since the last release suggests slower maintenance, but the active repository and recent commits indicate ongoing support. Install it if you need multilingual number-to-words conversion.
Install
num2words on PyPI
pip
pip install num2wordsuv
uv add num2wordspoetry
poetry add num2wordsInstalling num2words
Before you install
Low install friction with a single lightweight runtime dependency (docopt). Last release was 605 days ago; the repository remains active with recent commits (2025-05-30) and 962 stars, though maintenance pace appears to have slowed.
License in practice
Licensed under LGPL (copyleft). Any derivative work or modification must be distributed under compatible terms; proprietary closed-source applications using this library must comply with copyleft obligations or obtain alternative licensing.
Quickstart
pip install num2words
from num2words import num2words
print(num2words(42))
print(num2words(42, to='ordinal'))
print(num2words(42, lang='fr'))
Verify before relying
- Whether ordinal number generation is reliable across all supported languages (description notes this feature is 'a bit buggy for some languages').
- Current test coverage and robustness of less commonly used language implementations.
- Performance characteristics when handling very large numbers or bulk conversions.
- Total number of supported language variants and regional locales.
Package facts
| License | LGPL (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — docopt |
| Maintenance | aging — 605 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 9,461,923/month — #1,531 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: num2words-0.5.14-py3-none-any.whl
Keywords: number, word, numbers, words, convert, conversion, i18n, localisation, localization, internationalisation, internationalization
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
indic-numtowordsConverts non-negative integers to their word…
permissive · top 15,000 on PyPI
number-parserConverts numbers written in natural language…
permissive · top 15,000 on PyPI
wnWn is a Python library for querying and…
permissive · top 15,000 on PyPI
text2numConverts natural language number words into…
permissive · top 15,000 on PyPI
unicode-rbnfConverts numbers to spelled-out text in…
permissive · top 15,000 on PyPI
text2digitsConverts written-out number words in text to…
permissive · top 15,000 on PyPI
recognizers-text-numberRecognizes and extracts numeric entities…
permissive · top 15,000 on PyPI
word2numberConverts written-out number words (like "twenty…
permissive · top 5,000 on PyPI
wordfreqwordfreq looks up word frequencies across over…
permissive · top 5,000 on PyPI
recognizers-text-choiceRecognizes and resolves entities like numbers,…
permissive · top 15,000 on PyPI