You can use cxFreeze to build executable: http://cx-freeze.sourceforge.net/.
However, there will be a lot of files, but you could use your app standalone.
Also, you should be accurate in module imports to reduce size of the build. My scripts (about 200KB) were built in 200MB monster (used SciPy and Qt4).
Example build scripts is attached:
#coding=utf-8
from cx_Freeze import setup, Executable
includes = ["atexit"]
buildOptions = dict(
create_shared_zip=False,
append_script_to_exe=True,
includes=includes
)
executables = [
Executable(
script='main.py',
targetName='projectname.exe',
base="Win32GUI" # THIS ONE IS IMPORTANT FOR GUI APPLICATION
)
]
setup(
name="ProjectName",
version="1.0",
description="",
options=dict(build_exe=buildOptions),
executables=executables
)