When we write a python file, we can use command line “python test.py” to execute this file, but we need python environment, when publish programs, most user don’t have python in their PC, so sometimes we need to transfer python to executable file, like exe.


Here are two methods to make it.

Suppose our code like below:

if __name__ == "__main__":
    print("Hello world!")


1. py2exe

project link: http://sourceforge.net/projects/py2exe/

latest version just support python 2.6

Install py2exe

Create a python file named setup.py, code is:

# test.py
from distutils.core import setup
import py2exe


then execute in command:

python setup.py py2exe

It will generate a dir named dist, dir dist include test.exe, python26.dll,library.zip, etc.



project link: http://sourceforge.net/projects/cx-freeze/

support python version 2.x 3.x

install it

Create a python file named setup.py, code is:

# encoding:utf-8
from cx_Freeze import setup, Executable
name = "test",
version = "0.1",
descrīption = "This is a test",
executables = [Executable("test.py", icon = "test.ico")])

Now you can see, cx_freeze can set an icon for your exe, default it based console application, also you can set application based win32gui like this

executables = [Executable("test.py", base="Win32GUI" icon = "test.ico")])

then execute in command

python setup.py build

build is a dir, it include some *.pyd, python26.dll, library.zip, test.exe, etc.


Then you can publish your application for user.