A native Python2/3 reader module for the SWORD Project Bible Modules

pip install pysword==0.2.6


A native Python reader of the SWORD Project Bible Modules

This project is not an official CrossWire project. It merely provides an alternative way to read the bible modules created by CrossWires SWORD project.


  • Read SWORD bibles (not commentaries etc.)
  • Detection of locally installed bible modules.
  • Supports all known SWORD module formats (ztext, ztext4, rawtext, rawtext4)
  • Read from zipped modules, like those available from
  • Clean text of OSIS, GBF or ThML tags.
  • Supports both python 2.6+ and 3.3+ [*] (CI tested with 2.6 to 3.6)
[*] pysword makes use of (introduced in python 2.6 and the unicode literal (available in pyhton 2 and reintroduced in python 3.3 - PEP 414)


Since parts of the code is derived and/or copied from the SWORD project (see which is GPL2, this code is also under the GPL2 license.


PySwords source code can be downloaded from PySwords release list, but it is also available from PyPI for install using pip:

pip install pysword

It also available for ArchLinux (AUR), and will soon be available as a package in Debian and Fedora.

Run tests

To run the testsuite, first run the script that download the files used for testing, and then use nosetests to run the testsuite:

$ python tests/resources/
$ nosetests -v tests/

The tests should run and pass using both python 2 and 3.

Using PySword

Read the documentation for how to use pysword and to see the API docs.


If you want to contribute, you are most welcome to do so! Feel free to report issues and create merge request at If you create a merge request please include a test the proves that your code actually works.