PyCHM - Python bindings for CHMLIB

PyCHM is a package that provides bindings for Jed Wing's CHMLIB library.

The chm package contains four modules, namely chm.chm, chm.chmlib, chm.extra and chm._chmlib. chm.chmlib is a low level wrapper module around the API provided by the C library chmlib. Quoted from Jed's README:

chmlib is a small library designed for accessing MS ITSS files. The ITSS file format is used for Microsoft Html Help files (.chm), which have been the predominant medium for software documentation from Microsoft during the past several years, having superceded the previously used .hlp file format.

chm.chm provides some high level functionality over chm.chmlib, such as access to the .chm file contents tree.

chm.extra contains extra functionality to allow detection encodings in the CHM archives and to support full-text search.


Version 0.8.4 - November 2006

  • Word search is not case sensitive anymore (Glenn Washburn).
  • Fixed cases where contents tab was not being displayed.

Version 0.8.3 - May 2006

  • Fixing identification of default page (this was causing crashes in some conditions (#1464957)
  • Fixed identification of Cyrillic language (cp1251)

Version 0.8.2 - February 2005

  • Identification of index file was slightly improved.

Version 0.8.1 - November 2004

  • Fixed bug #1039336: Chinese characters can't be displayed correctly Improved detection of character set encoding.

Version 0.8.0 - February 2004

  • Added support to access the LCID from a CHM archive - this functionality is required by gnochm >= 0.8.0


The current version of PyCHM is 0.8.4, released in November 2006. It requires:

If you are planning to compile PyCHM yourself, then you will need a working C compiler, and in case you want to change the interface specification file to modify the modules API, you will also need Swig.


My stuff

Sources, binaries and my Fedora Core packages can be downloaded at Sourceforge.


The following links are for packages that I did not build myself, so I don't know if they work or not. If they don't, there is nothing I can do, but let me know so I can remove the links from this page.

The Fedora Extras repository now includes python-chm.

Various builds for Redhat 8, 9 and Fedora in the Dag Apt Repository.

Debian packages are here.

For the SourceMage distro, check here.

FreeBSD port is here.

A Darwin port is here.