12 years after the question;
To let the newcomers know,
PyInstaller DOES NOT compile Python programs into machine code per se; rather, it creates an executable program that contains a copy of the Python interpreter and your script.
As such, these programs tend to be fairly large. Even a simple “Hello, world” program compiled with PyInstaller can be close to 8MB in size, literally a thousand times larger than a version written in assembly language.
(from AUTOMATE THE BORING STUFF book)
So, I want to ask the original question again:
How to compile python script to binary executable?