DEV Community

Cover image for How to Convert Python File To Exe
Tarun Nagar
Tarun Nagar

Posted on

How to Convert Python File To Exe

To convert a Python file to an executable (.exe) file, you can use a tool called PyInstaller. PyInstaller is a powerful and easy-to-use tool that can convert Python scripts into standalone executables that can run on any machine without the need for Python or any additional libraries to be installed. Here are the steps:

1. Install PyInstaller:

You can install PyInstaller using pip by running the following command in your terminal or command prompt:

pip install pyinstaller

Navigate to the directory where your Python script is located.

2. Run PyInstaller:

To convert your Python script to an executable, run the following command:

pyinstaller --onefile your_script_name.py

Replace your_script_name.py with the name of your Python script. The --onefile option tells PyInstaller to create a single executable file.

3. Wait for PyInstaller to finish:

PyInstaller will now analyze your script and create a standalone executable file. This may take a few moments depending on the size of your script and the number of dependencies it has.

4. Locate your executable:

Once PyInstaller is done, you can find your executable file in the dist directory in your project folder. The name of the executable file will be the same as your Python script, but with a .exe extension.

Note: When running your executable on another machine, make sure that the target machine has the necessary dependencies installed. If you encounter any issues, you can try including the necessary dependencies in your PyInstaller command.

Top comments (1)

Collapse
 
ricardoreis1970 profile image
Ricardo Reis

Brutally honest

I apologise for being the bearer of bad news, but PyInstaller is a liar!

Longer explanation

The "executable" you get is NOT the kind of desktop program you're used to double-clicking and running. Instead, this is a self-extracting archive that will add ZERO to your runtime speed and actually delay the start.

Even longer explanation

PyInstaller just zips your entire project and encapsulates it in the self-extracting package. Upon double-clicking / running it, it unzips into a randomly-named folder in your user space (%USERPROFILE%\AppData\Local in Windows), spending considerable time in this.

Afterwards, it just runs your semi-compiled files (the .pyc ones you find inside all those __pycache__ folders in your project).

So, not only it is not compiling a damn thing (just riding on the shoulders of Python's own interpreter's symbolic translation), but also it adds unpacking time -- every single time you run it -- and some bizarre file paths if you happen to get an unhandled exception.

Solution

To everybody that is interested in having pure -- and very fast -- Python compilation, I would suggest Nuitka. This project performs transpilation to C followed by real compilation. You will need a C Compiler installed.

On a different but somewhat related note, cx_Freeze allows for excellent Python packaging, generating in the case of Windows an MSI installer and dramatically shortening the whole deployment time.