pyenchant
Python bindings for the Enchant spellchecking system
What it is and what it does
PyEnchant is a Python wrapper around the Enchant spellchecking library, which has been in active development since 2006. It lets you check spelling and get correction suggestions for words, supporting multiple languages and multiple underlying spellchecking engines. The package itself is lightweight with no Python runtime dependencies—it uses ctypes to call the native Enchant library.
The main gotcha is that PyEnchant is not self-contained: installing it via pip does not automatically provide the Enchant library itself. You must install Enchant separately on your system before PyEnchant can work. Once Enchant is present, PyEnchant gives you a straightforward Python API to create dictionary objects, check words, and retrieve suggestions.
Use it for:
- Build a spell-checker for user-submitted text in a web application or content management system.
- Validate spelling in bulk text processing pipelines before publishing or archiving documents.
- Implement multilingual spell-checking in desktop or CLI tools that need to support many languages.
- Add spell-check suggestions to a text editor or IDE plugin.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyEnchant provides Python bindings to the Enchant spellchecking library, enabling spell-checking and correction suggestions across multiple languages and dictionary backends.
Yes, if you already have Enchant installed on your system or are willing to install it separately. PyEnchant is stable, actively maintained, has no Python dependencies, and is widely used. The main friction is the external system dependency—plan for that upfront. No known security vulnerabilities.
Install
pyenchant on PyPI
pip
pip install pyenchantuv
uv add pyenchantpoetry
poetry add pyenchantInstalling pyenchant
Before you install
Low install friction with a pure-wheel distribution. Active maintenance with a recent commit on 2026-06-04. However, the documentation explicitly warns that PyEnchant will not work out of the box after installation—the underlying Enchant library must be installed separately on the system.
License in practice
Licensed under LGPL (copyleft). This means any modifications to PyEnchant itself must be released under compatible terms, though applications using it as a library face fewer restrictions.
Quickstart
pip install pyenchant
import pyenchant
# Create a dictionary and check spelling
checker = pyenchant.Dict("en_US")
print(checker.check("word"))
print(checker.suggest("misspeled"))
The Enchant spellchecking library must be installed on the system separately; PyEnchant is only the Python binding and will not function without it.
Verify before relying
- Which system package managers and versions of Enchant are officially supported or tested.
- Whether all popular spellchecking backends (ispell, aspell, MySpell) are equally well-supported through Enchant on modern systems.
- Performance characteristics for large-scale spell-checking workloads.
Package facts
| License | LGPL (copyleft) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 334 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,009,601/month — #2,401 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyenchant-3.3.0-py3-none-any.whl
Keywords: spelling, spellcheck, enchant
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
language_tool_pythonPython wrapper for LanguageTool that checks…
copyleft · top 15,000 on PyPI
sphinxcontrib-spellingA Sphinx extension that checks documentation…
permissive · top 5,000 on PyPI
pyspellcheckerDetects misspelled words and suggests…
permissive · top 5,000 on PyPI
pyspellingPySpelling wraps Aspell or Hunspell to automate…
permissive · top 15,000 on PyPI
typosFinds and corrects spelling mistakes in source…
permissive · top 5,000 on PyPI
symspellpysymspellpy is a Python port of SymSpell v6.7.2…
permissive · top 15,000 on PyPI
pythainlpPyThaiNLP provides Thai-language natural…
permissive · top 5,000 on PyPI
mkdocs-spellcheckA spell checker plugin for MkDocs that…
permissive · top 15,000 on PyPI
unicode-rbnfConverts numbers to spelled-out text in…
permissive · top 15,000 on PyPI
codespellCodespell finds and fixes common misspellings…
copyleft · top 5,000 on PyPI