You will need python (2.6 and 2.7 are tested), qtalchemy, sqlalchemy (0.7x preferred), a python database driver, and PyQt4 or PySide. Refer to setup.py for a more complete list of dependencies.

It should be noted that while PyHacc is a fully functional system which is in production use for the author's personal use, it is primarily a demonstration and example of qtalchemy.

As of qtalchemy version 0.8.x, PyHacc uses PySide. To use PyQt4 instead of PySide, you must install from the source in the bitbucket repository. Install in the following way:

python qtbindings.py --platform=PyQt4
python setup.py build
sudo python setup.py install

If using PyQt4, the qtalchemy library will also need to be switched to using PyQt4 in a similar way.

Getting Started

On linux, it should be sufficient to run:

python setup.py build
sudo python setup.py install
pyhaccgui --conn=sqlite://

The sqlite:// connection string will start pyhacc with a demo database.

It is recommended and most tested to use pyhacc with postgresql. To initialize a database:

createdb pyhacc
pyhacc initdb postgresql://username:password@localhost/pyhacc
# to run pyhacc connected to this database:
pyhaccgui --conn=postgresql://username:password@localhost/pyhacc

Getting Started on Windows

Roughly speaking, the install proceeds as follows:

  • Install python and easy_install
  • Install PyQt (or PySide, if desired).
  • easy_install sqlalchemy
  • easy_install pyscopg2 # for postgresql support
  • easy_install pyhacc

On your postgresql server, run the following command:

createdb pyhacc

Initialize the data-set with the following command on the windows client:

c:\python27\python.exe c:\python27\scripts\pyhacc initdb postgresql://username:password@server/pyhacc

Create a windows short-cut with the following target for starting the program:

c:\python27\pythonw.exe c:\python27\scripts\pyhaccgui --conn=postgresql://username:password@server/pyhacc



  • Python 3 support
  • Transaction reverse & auto-balance with hot-keys
  • Report improvements particularly in profit & loss reports.
  • Additional calendar navigation features from qtviews.


  • reports: balance sheet and profit & loss formatting with sorting and grouping flexibility
  • reports: html export
  • experimental flask http server code for viewing of reports
  • switch to using PySide rather than PyQt4
  • primitive calendar view for transactions (personally, I love it!)
  • transaction tagging gui


  • report changes with column width being propogated from on-screen lists to pdf versions
  • factor out basic report code to qtalchemy
  • bug fixes

0.6: First pleasantly usable version in production