Use pyinstaller with setuptools!
from pyinstaller_setuptools import setup
setup(
...
scripts=['path/to/a/script.py'],
entry_points={
'console_scripts': ['entry=module.func']
},
...
)
> python ./setup.py build
> python ./setup.py install
> python ./setup.py pyinstaller [-- <pyinstaller-flags>]