It just occurs to me, which Python? I see `print()` statements scattered around the program and no `from __future__ import print_function` so that seems to suggest that you assume Python 3. I've tested it with Python 2 and that worked fine, but it's probably good to either explicitly use `python3` or do the `__future__` import. Just in case.