$npx skillfedfor your agent

pyicu

Python extension wrapping the ICU C++ API

With conditionsPyPI InternationalizationReleased Mar 2026681.6K downloads / moMITSource build

Decision gist · record as of 2026-08-14

sdist only — pyicu-2.16.2.tar.gz · builds from source
v2.16.2 · released 2026-03-20

Yes, if you need production-grade internationalization and Unicode handling. PyICU is stable (Production/Stable status, active maintenance, no known vulnerabilities) and widely used. Install only if your system can satisfy the high build-time friction: pre-built packages exist for major platforms, but source builds require ICU libraries, pkg-config, and a matching C++ compiler. Avoid if you need a pure-Python solution or cannot install system dependencies.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • The ICU C++ libraries and development headers must be installed on your system before installing PyICU.
  • On macOS, this typically requires Homebrew or Macports; on Linux, the libicu-dev package; on Windows, manual ICU installation.
  • The C++ compiler used must match your Python distribution's compiler.

License · maintenance · safety

MIT (permissive) — PyICU is licensed under MIT, a permissive open-source license that allows commercial and private use with minimal restrictions.

last release 2026-03-20 (147 days)

0 known vulnerabilities (OSV.dev, 2026-08-14) · 681,592 downloads/mo, #5,362 on PyPI

Verify before relying

# After installing ICU libraries and PyICU
import pyicu

# Create a collator for locale-aware string comparison
locale = pyicu.Locale('en_US')
collator = pyicu.Collator.createInstance(locale)
result = collator.compare('apple', 'Apple')
  • Whether pre-built wheels are available for the current version on PyPI for common platforms
  • Current maintenance activity and response time for issues on the GitLab repository
  • Performance characteristics compared to pure-Python Unicode libraries for typical workloads
  • Specific API surface and feature completeness relative to native ICU C++ library
Same gist for agents: .md · .json

What it is and what it does

PyICU is a Python extension that wraps the ICU (International Components for Unicode) C++ libraries, providing direct access to the Unicode Consortium's internationalization and localization tools. It implements much of the Unicode Standard, Unicode Technical Standards, and Unicode CLDR, enabling developers to handle text processing tasks that require locale awareness, proper collation, script detection, and multilingual support.

The package is used when you need production-grade Unicode and internationalization features beyond Python's built-in string handling. It handles collation, number and date formatting in different locales, text normalization, bidirectional text, script detection, and other complex text operations. Because PyICU is a C++ extension wrapping native libraries, it offers performance and feature completeness that pure-Python alternatives cannot match, but at the cost of requiring system-level ICU installation and compilation during setup.

Use it for

  • Sort user-generated text correctly in different languages using locale-aware collation rules
  • Format dates, times, and numbers according to regional conventions for international applications
  • Normalize Unicode text and detect script boundaries in multilingual documents
  • Build search and filtering systems that respect language-specific text comparison rules
  • Process bidirectional text and handle complex script combinations

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

With conditions

Yes, if you need production-grade internationalization and Unicode handling.

PyICU is stable (Production/Stable status, active maintenance, no known vulnerabilities) and widely used. Install only if your system can satisfy the high build-time friction: pre-built packages exist for major platforms, but source builds require ICU libraries, pkg-config, and a matching C++ compiler. Avoid if you need a pure-Python solution or cannot install system dependencies.

Install

pyicu on PyPI

Before you install

Installation requires high friction: the ICU C++ libraries and headers must be pre-installed on your system, and PyICU builds from source rather than offering pre-built wheels on all platforms. Pre-built packages are available on macOS (Homebrew, Macports), Debian, Ubuntu, Alpine, NetBSD, and OpenBSD; building from source requires pkg-config and a C++ compiler matching your Python distribution.

The ICU C++ libraries and development headers must be installed on your system before installing PyICU. On macOS, this typically requires Homebrew or Macports; on Linux, the libicu-dev package; on Windows, manual ICU installation. The C++ compiler used must match your Python distribution's compiler.

License in practice

PyICU is licensed under MIT, a permissive open-source license that allows commercial and private use with minimal restrictions.

Quickstart

# After installing ICU libraries and PyICU
import pyicu

# Create a collator for locale-aware string comparison
locale = pyicu.Locale('en_US')
collator = pyicu.Collator.createInstance(locale)
result = collator.compare('apple', 'Apple')

Verify before relying

  • Whether pre-built wheels are available for the current version on PyPI for common platforms
  • Current maintenance activity and response time for issues on the GitLab repository
  • Performance characteristics compared to pure-Python Unicode libraries for typical workloads
  • Specific API surface and feature completeness relative to native ICU C++ library

Package facts

LicenseMIT permissive
Python supportNot specified
Install frictionHigh. Source build required
Runtime dependenciesNone
MaintenanceActively maintained 147 days since the last release
First released
Downloads681,592 / month, #5,362 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI ApprovedOperating System :: OS IndependentProgramming Language :: C++Programming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 3Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: InternationalizationTopic :: Software Development :: Localization

Evidence: pyicu-2.16.2.tar.gz

Tags

Capabilities
unicode text processing pythoninternationalization i18n librarycollation and sorting unicodelocale-aware formattingicu bindings pythonmultilingual text handlingunicode normalization
Topics
unicode-processinginternationalizationc-extension

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “unicode text processing python”

  • pyicuPyICU wraps the ICU C++ libraries to provide Python access to Unicode…
  • unisegDetermines Unicode text segmentation boundaries—grapheme clusters,…
  • unicodedata2Provides updated Unicode character data tables via a backport of…

Give your agent the search over MCP, or paste the wish link into any chat.

More Internationalization packages

wcwidth Worth it
PyPI · Libraries · released Jun 2026

Measures the displayed width of Unicode strings in terminals, accounting for wide characters, combining marks, and terminal escape sequences that standard Python string functions mishandle.

Install it if your application formats text for terminals and handles non-ASCII characters.

MITpure Python · 3.8+
306.5Mdownloads / mo
babel Worth it
PyPI · Python Modules · released Feb 2026

Babel provides internationalization (i18n) and localization (l10n) utilities for Python applications, handling date/time formatting, number localization, message translation, and timezone operations across different languages and locales.

Install it if your application needs to support multiple languages or locales.

BSD-3-Clausepure Python · 3.8+
141.6Mdownloads / mo
pycountry Worth it
PyPI · Internationalization · released Feb 2026

Provides programmatic access to ISO standard databases for countries, subdivisions, languages, currencies, and scripts through a Python API.

LGPL-2.1-onlypure Python · 3.10+
40.2Mdownloads / mo
num2words Worth it
PyPI · Python Modules · released Dec 2024

Converts numbers to their word representations in multiple languages, supporting cardinal numbers, ordinals, years, and currency formats.

Install it if you need multilingual number-to-words conversion.

copyleftpure Pythonaging
9.5Mdownloads / mo
polib Worth it
PyPI · Python Modules · released Feb 2023

polib reads, writes, and manipulates gettext translation files (PO, POT, and MO formats), allowing you to load, iterate, modify entries, and create translation catalogs programmatically.

Install it if you need to work with gettext files programmatically.

MITpure Pythondormant
7.0Mdownloads / mo
pyunormalize With conditions
PyPI · Python Modules · released Sep 2025

Provides Unicode normalization (NFC, NFD, NFKC, NFKD) using Unicode Standard version 17.0 data, independent of the host Python environment's built-in Unicode version.

Install it if your application requires consistent normalization across different systems or if you need to target a specific Unicode Standard version.

permissive licensepure Python · 3.8+aging
4.1Mdownloads / mo

See also PyICU-binary · zope.i18n · flufl.i18n · uniseg · normality · quart_babel · oslo.i18n · pyuca · translationstring