Cx_Freeze is a set of scripts and modules for freezing
Python scripts into executables, in much the same way that py2exe and py2app do. Unlike these two tools,
cx_Freeze is cross platform and should work on any platform that Python itself works on.
Cx_Freeze allows Python applications to be easily frozen into executables for easy distribution.
Features:
• Cross-Platform Support:
cx_Freeze works on Windows, OS X and Linux.
• Python Version Support: cx_Freeze supports Python 2.6, 2.7, 3.2, 3.3 and 3.4.
• GUI Application Support: cx_Freeze can create executables for GUI applications.
• Command Line Support: cx_Freeze can also create executables for command line only applications.
• Multiple Platform Support: cx_Freeze can create executables for multiple platforms at once.
• Dependency Analysis: cx_Freeze can analyze your program and determine what other files it needs in order to run. It will package these files along with the executable.
• Easy Configuration: cx_Freeze provides an easy way to configure the build process. It reads the setup.py script and looks for a few configuration values.
•
ZIP Support: cx_Freeze can bundle files into a ZIP file to reduce the size of the executable.
• Portable Support: cx_Freeze can create executables that are self-contained, so they don’t need to be installed on the target system.
• Compilation Support: cx_Freeze can compile Python scripts into bytecode before packaging them into the executable.
• Unicode Support: cx_Freeze supports Unicode strings, so you can create executables for scripts that use Unicode strings.
• Open Source: cx_Freeze is open source and released under the Python Software Foundation License.
• Easy Installation: cx_Freeze can be installed with pip, easy_install, or from source.
• Documentation: cx_Freeze has extensive documentation available on the web.
Uses
Cx_Freeze is used to create executables from Python scripts. It can be used to create executables for GUI applications and command line only applications. It is useful for creating standalone executables that can be distributed without needing the target system to have Python installed.
Advantages
• Cross Platform: cx_Freeze works on Windows, Mac OS X and Linux. This makes it a good choice for distributing applications that need to run on multiple platforms.
• Easy Configuration: cx_Freeze uses a setup.py script to configure the build process, so it’s easy to set up and customize.
• Multiple Platform Support: cx_Freeze can create executables for multiple platforms at once.
• Dependency Analysis: cx_Freeze can analyze your program and determine what other files it needs in order to run.
• ZIP Support: cx_Freeze can bundle files into a ZIP file to reduce the size of the executable.
• Portable Support: cx_Freeze can create executables that are self-contained, so they don’t need to be installed on the target system.
• Compilation Support: cx_Freeze can compile Python scripts into bytecode before packaging them into the executable.
• Unicode Support: cx_Freeze supports Unicode strings, so you can create executables for scripts that use Unicode strings.
• Open Source: cx_Freeze is open source and released under the Python Software Foundation License.
• Easy Installation: cx_Freeze can be installed with pip, easy_install, or from source.
• Documentation: cx_Freeze has extensive documentation available on the web.
Disadvantages
• Not as Widely Used: cx_Freeze is not as widely used as py2exe or py2app, so there may be fewer resources available for help.
• Limited Support: cx_Freeze does not support all platforms and versions of Python.
• Compilation Issues: cx_Freeze does not always correctly detect dependencies. This can lead to executables that don’t work correctly.
Conclusion
Cx_Freeze is a great tool for creating executables from Python scripts. It is cross platform and supports multiple platforms, making it a good choice for distributing applications that need to run on multiple platforms. It also provides an easy way to configure the build process and can analyze your program for dependencies. While it is not as widely used as py2exe or py2app, it provides many of the same features.