You can really use py2exe , it behaves the way you want.
See the answer to this question:
How to combine several .py files into one .exe with Py2Exe
py2exe script exe ( python) zip ( pyc). DLL , , exe . , - exe - zip DLL.
py2exe exe . Exe script, python DLL. setup.py :
setup(
...
options = {
'py2exe' : {
'compressed': 2,
'optimize': 2,
'bundle_files': 1,
'excludes': excludes}
},
zipfile=None,
console = ["your_main_script.py"],
...
)
:
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
setup(
options = {
'py2exe' : {
'compressed': 1,
'optimize': 2,
'bundle_files': 3,
'dist_dir': 'dist',
'xref': False,
'skip_archive': False,
'ascii': False,
}
},
zipfile=None,
console = ['thisProject.py'],
)