I used to use cx_Freeze, but that hasn't worked for me the last couple of years and the no one on the cx_Freeze mailing list was able to help, so I gave up on it. (It makes an executable that doesn't work for various inexplicable reasons, usually Pygame not recognizing the existence of a file IIRC.) I don't even bother writing setup.py files for games these days.
It doesn't help either that Windows is needed to build Windows executables, which means I always have to borrow someone else's computer to make one this way. It would be much nicer if I could do it from Wine or otherwise from a GNU/Linux system.
Perhaps I should try py2exe, see if that gives better results.
EDIT: Nah, py2exe is even worse: it doesn't even successfully create an executable.
I would really appreciate it if someone could help me find a better way, though. Actually, what I would really like is to copy what Ren'Py does, but I haven't been able to find any documentation on that.