Pyinstaller Tutorial – Complete Guide

In the diverse world of Python development, packing your code into standalone executable files can be a game changer. Think of it like having your tailor-made video game, ready to be played by anyone without them needing to install any additional software or worrying about system dependencies. The knight in our coding land that empowers us to do this is “PyInstaller”. It’s time we delve into the vaults of this powerful tool and demystify its magic.

What is PyInstaller?

PyInstaller is an open-source, cross-platform program which converts Python scripts into standalone executables. It’s our own secret sorceress, who collects all the necessary Python files, libraries, and modules, and then packs them into a bundle that can run on a system even if it does not have Python installed. Pretty magical, isn’t it?

Why should I learn PyInstaller?

If you’re aiming to share your spell-binding Python games or applications with the world, mastering PyInstaller can become your superpower. Here’s why:

  • Portability: A standalone executable generated with PyInstaller can be shared and run on any system without Python pre-installed.
  • Flexibility: It supports Python 2.7, 3.5, 3.6, 3.7 and 3.8, and can generate executables for Windows, Mac, and Linux.
  • Less Hassles: You can bid farewell to the headaches of users struggling with dependencies or installations.

It’s like creating a portable game cartridge, ready to plug and play anywhere. And the best part, it’s simple, clear, and intuitive – suitable for beginners and experts alike.

Excited about casting Python spells with PyInstaller? Stay with us as we start our enchanting journey into the mystical depths of PyInstaller.

CTA Small Image

Getting Started with PyInstaller

Before we start enchanting our scripts, we need to install PyInstaller. Let’s do this together:

pip install pyinstaller

Now, let’s assume we have a neat little Python script called “” which we want to convert to an executable. Our first step will be:


This simple command will generate two folders: “build” and “dist”. The “build” is for PyInstaller’s use and can be disregarded. The “dist”, or distribution folder, contains our enchanting artefact—our standalone executable.

Customizing the Build Process

Let’s continue wielding our newfound PyInstaller powers by setting the name of our executable:

pyinstaller --name My_First_Game

With the ‘–-name’ option, we can set our executables’ name as “My_First_Game”.

Reducing the Size with One-File Builds

Want to further make your executable portable by having it as a single file? PyInstaller can help:

pyinstaller --onefile

The ‘–-onefile’ option packs everything into one executable file for the utmost portability.

Dealing with Dependencies

Is your Python script dependent on certain modules or files? Don’t fret; simply tell PyInstaller about them:

pyinstaller --add-data 'source_file_path;destination_folder'

With the ‘–-add-data’ option, you can include specific files needed by your program.

The Power of Spec Files

When working with more intensive and intricate projects, PyInstaller can create a .spec file, which is akin to a “build configuration”.

pyinstaller --onefile --name My_First_Game --specpath path/to/specfile

A .spec file is useful for more complex build processes, where repeated build configurations are required.

And voilà, with just a few commands, your Python script is now an executable file, ready to share with the world! Can’t wait for more? We’ll dive deeper into PyInstaller in the next section!

Including Custom Icons

While creating your game, you can opt to include a custom icon to make your executable more engaging and easily identifiable:

pyinstaller --onefile --icon=/path/to/icon.ico

Here, the “–icon” option allows you to include your personalized icons, adding an extra layer of customization to your application.

Managing Window Modes

You can manage how your application window appears when it runs. Let’s say, you want to run your game in the console:

pyinstaller --console

You can alternatively choose to keep the console hidden:

pyinstaller --windowed

Both “–console” and “–windowed” options allow you to control whether the console window should be visible or not when running the application.

Encrypting Python Bytecode

This piece of code is a game changer—literally. PyInstaller allows you to protect your valuable game’s bytecode from prying eyes with a key:

pyinstaller --key=your_secret_key

The “–key” option takes your secret key as a parameter and uses it to encrypt the Python bytecode.

Setting Version Information

If your goal is to share your game with a wider audience, it can be helpful to give it a version number:

pyinstaller --version-file=/path/to/version_info.txt

With the “–version-file” option, PyInstaller can include a text file that contains version information.

And there you have it! With PyInstaller, you’ve unlocked the power to convert your Python creations into easy-to-share portable executables. It’s time to put that knowledge into practice and let the world play your games. But remember, your journey of learning doesn’t stop here. Keep exploring, keep inventing, and keep sharing!

Where to go next?

Bathing in the newfound powers of PyInstaller, it’s time to harness these energies and build upon them. Embarking on a quest in the expansive world of Python programming is a fantastic next step. But fret not, we at Zenva are your constant allies on your coding journey!

We invite you to utilize the knowledge gained here in PyInstaller and venture forth with our comprehensive Python Mini-Degree. It’s not just a course; it’s a map towards mastering Python programming—a language renowned for its power, versatility, and simplicity.

In our Python Mini-Degree, you’ll chart your course from the basics of coding to the dark arts of algorithms and object-oriented programming. Fancy developing games or apps? We’ve got that covered as well!

Completing the course will equip you with a portfolio of Python projects and skills in high demand in the job market. Whether you’re a novice explorer or a seasoned warrior, our flexible learning options and support from expert mentors will ensure a smooth journey.

Looking for more variety or wish to specialize further? Our library of Python courses will surely cater to your aspiring tastes. Ranging from algorithm crafting to game creation, there’s a realm waiting to be explored for every budding coder.


Stepping into the realm of code conversion and standalone executable creation, we’ve unraveled the powers of PyInstaller. From learning about its importance to mastering its commands, we’ve armed ourselves with an invaluable skill that empowers us to share our Python games and applications.

In this vast world of coding and game creation, always remember that the journey is just as important as the destination. With our Python Mini-Degree and extensive list of courses, we offer you the platform to continue your voyage in learning, creating, and exploring. Rise to the opportunity, dive into the depths of coding lore and enrich your skills. Because here at Zenva, we believe in making each line of code count.

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.