Если хочешь более гибкий и мощный способ, используй PyInstaller с .spec файлом. Создай 'your_script.spec' так...
Программный код:
from PyInstaller import executable, Analysis, PYZ, EXE, COLLECT
analysis = Analysis(['your_script.py'])
pyz = PYZ(analysis.pure)
exe = EXE(pyz,
analysis.scripts,
analysis.binaries,
analysis.zipfiles,
analysis.datas,
name='your_script.exe',
debug=False,
strip=False,
upx=True,
console=True)
coll = COLLECT(exe, analysis.binaries, analysis.zipfiles, analysis.datas)
Затем выполняй 'pyinstaller your_script.spec'. Команда заготовит всё под .exe с нужными настройками.