How can I convert a .py to .exe for Python?
Steps to convert .py to .exe in Python 3.6
- Install Python 3.6.
- Install cx_Freeze, (open your command prompt and type
pip install cx_Freeze
. - Install idna, (open your command prompt and type
pip install idna
. - Write a
.py
program namedmyfirstprog.py
. - Create a new python file named
setup.py
on the current directory of your script. - In the
setup.py
file, copy the code below and save it. - With shift pressed right click on the same directory, so you are able to open a command prompt window.
- In the prompt, type
python setup.py build
- If your script is error free, then there will be no problem on creating application.
- Check the newly created folder
build
. It has another folder in it. Within that folder you can find your application. Run it. Make yourself happy.
See the original script in my blog.
setup.py:
from cx_Freeze import setup, Executablebase = None executables = [Executable("myfirstprog.py", base=base)]packages = ["idna"]options = { 'build_exe': { 'packages':packages, }, }setup( name = "<any name>", options = options, version = "<any number>", description = '<any description>', executables = executables)
EDIT:
- be sure that instead of
myfirstprog.py
you should put your.py
extension file name as created in step 4; - you should include each
import
ed package in your.py
intopackages
list (ex:packages = ["idna", "os","sys"]
) any name, any number, any description
insetup.py
file should not remain the same, you should change it accordingly (ex:name = "<first_ever>", version = "0.11", description = ''
)- the
import
ed packages must be installed before you start step 8.
Python 3.6 is supported by PyInstaller.
Open a cmd window in your Python folder (open a command window and use cd
or while holding shift, right click it on Windows Explorer and choose 'Open command window here'). Then just enter
pip install pyinstaller
And that's it.
The simplest way to use it is by entering on your command prompt
pyinstaller file_name.py
For more details on how to use it, take a look at this question.
There is an open source project called auto-py-to-exe on GitHub. Actually it also just uses PyInstaller internally but since it is has a simple GUI that controls PyInstaller it may be a comfortable alternative. It can also output a standalone file in contrast to other solutions. They also provide a video showing how to set it up.
GUI:
Output: