39

Could someone tell me which is better of the two for bundling Python applications — cx_Freeze or PyInstaller? I'm looking for a comparison based on factors such as:

  1. Popularity (i.e. larger user base)
  2. Footprint of the built binary
  3. Cross platform compatibility
  4. Ease of use
Mridang Agarwalla
  • 43,201
  • 71
  • 221
  • 382

2 Answers2

27

I tried both for a current project and decided to use cx_freeze. I found it easier to get started. It has an option to bundle dependencies in a zip archive, which makes it easy to check that everything was properly included.

I had trouble getting PyInstaller to include certain egg dependencies. It couldn't handle conditional imports as well as I needed and looking through the bundled archive was difficult. On Windows, it requires pywin32 (so it can't be used with virtualenv) and version 1.4 doesn't work with Python 2.6. There's no information on whether Python 2.7 is supported.

Velociraptors
  • 2,012
  • 16
  • 22
  • 1
    Managing hidden import is something that really confusing with PyInstaller. I will test cx_freeze for this reason alone. Thanks! – swdev Jun 06 '15 at 15:13
1

Why not use something like GUI2EXE?

GUI2Exe is a Graphical User Interface frontend to all the "executable builders" available for the Python programming language. It can be used to build standalone Windows executables, Linux applications and Mac OS application bundles and plugins starting from Python scripts.

For my experience, I found that for some programs py2exe doesn't work right, but cx_freeze does. haven't tried pyinstaller.

fseto
  • 9,898
  • 1
  • 19
  • 14