Convert Python to Executables
with a Powerful GUI

A cross-platform GUI wrapper for PyInstaller. Convert your Python scripts into standalone executables for Windows, macOS, and Linux with ease. No command-line headaches.

Python 3.6+PyInstaller 6.11.1+PyQt6 6.8.1+MIT License

Latest Release & Recent Activity

Live data from the GitHub repository.

Latest Release

Recent Changes

Everything You Need

Packed with features to make Python packaging simple, fast, and reliable.

Cross-platform support

Convert your Python scripts into executables for Windows, macOS, and Linux from a single interface.

Easy-to-use GUI

No need to remember complex command-line arguments. A simple and intuitive interface.

Dark and Light Themes

Automatic system theme detection with manual override options for comfortable use.

Drag and Drop Support

Simply drag and drop your Python script into the application to get started instantly.

Recent Files

Quickly access recently used scripts from the dropdown menu for faster iteration.

Configuration Management

Export and import build configurations as JSON files for reuse and sharing across projects.

Syntax Highlighting

Command preview with color-coded syntax highlighting for better readability and debugging.

Search and Filter

Search and filter additional files in the file tree to manage large projects with ease.

Edit Files

Edit file paths directly or double-click to modify them within the Additional Files tab.

Copy and Save Logs

Copy generated commands or save build logs to files with timestamps for later reference.

Real-time logging

View everything happening during the conversion process with detailed, live logs.

Customizable settings

Fine-tune various PyInstaller options like adding extra files, hidden imports, and more.

Getting Started

Install in seconds and start building executables.

Installation

pip install --upgrade pyinstaller-gui

Or clone the repository directly:

git clone https://github.com/inject3r/pyinstaller-gui.git
cd pyinstaller-gui
pip install -e .

Launching the GUI

pyinstaller-gui

Or use the shorthand:

pyinstallergui

Converting a Script

  1. Open the PyInstaller GUI application.
  2. Load your Python script by clicking Browse, dragging and dropping a .py file, or selecting from Recent files.
  3. Configure your build options across the tabs: General, Additional Files, Advanced, Settings, and Config.
  4. Click Run PyInstaller to generate the executable.

Configuration Management

  • Export Configuration: Save your current settings as a JSON file.
  • Import Configuration: Load previously saved settings.
  • Preview: View a human-readable summary of your current configuration.

Keyboard Shortcuts and Tips

  • Double-click any file in the Additional Files list to edit its path.
  • Use the Search box to filter files in the Additional Files tab.
  • Copy button copies the generated command to clipboard.
  • Save Log saves the build output to a file with timestamp.
  • Clear button clears the output console.

Custom Settings

Fine-tune every aspect of your build.

FeatureDescription
OneFile (-F)Create a single executable file instead of a folder.
No Console (-w)Hide the console window for GUI applications.
Hidden ImportsSpecify modules that are imported dynamically.
Additional FilesInclude files, folders, or binaries to bundle.
IconChoose a custom icon (.ico for Windows, .icns for macOS).
Output FolderDefine where the executable will be saved.
UPX DirectoryPath to UPX for executable compression.
Log LevelControl build output verbosity (TRACE, DEBUG, INFO, WARN, ERROR, FATAL).
Debug ModeEnable debug features (all, imports, bootloader, noarchive).
Runtime TmpdirCustom temporary directory for onefile mode.
Clean CacheClear PyInstaller cache before building.
Custom CommandsAdd any additional PyInstaller arguments.
Note: To generate the executable for a specific operating system, you must run this module on that system. For example, to create a Windows executable, you need to run the module on a Windows machine.

Screenshots

Click any image to view it larger.

PyInstaller GUI screenshot 1
PyInstaller GUI screenshot 2
PyInstaller GUI screenshot 3
PyInstaller GUI screenshot 4
PyInstaller GUI screenshot 5
PyInstaller GUI screenshot 6

Troubleshooting

Common issues and their solutions.

PyInstaller not found
Install with pip install pyinstaller.
Module not found errors
Add missing modules to Hidden Imports.
Icon not showing
Ensure icon format is correct (.ico for Windows, .icns for macOS).
Permission denied on Linux
Run chmod +x dist/your_app.
Command preview shows error
Check if script path is valid and file exists.
Build fails with no console
GUI applications need --windowed flag (already set by No Console option).

Getting Help

  • Check the built-in help dialogs (click the ? button in each tab).
  • View the command preview before building to verify arguments.
  • Check the output console for detailed error messages.
  • Visit the GitHub Issues page.

Development and Requirements

For contributors and advanced users.

Requirements

  • Python 3.6+
  • PyInstaller 6.11.1+
  • PyQt6 6.8.1+

Supported Platforms

  • Windows: Create .exe files for Windows
  • macOS: Generate .app bundles for macOS
  • Linux: Create executables for Linux

Running Tests

# Run all tests with coverage
./scripts/tests.sh

# Clean test output files
./scripts/test_clean.sh

# Run a single test file
python -m pytest tests/test_command_builder.py -v

Building from Source

# Install in development mode
pip install -e .

# Install with dev dependencies
pip install -e ".[dev]"

# Build distribution
python -m build

# Build executable with PyInstaller
pyinstaller pyinstaller-gui.spec

Contributing

Contributions are welcome. Feel free to submit a Pull Request.

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/amazing-feature).
  3. Commit your changes (git commit -m 'Add some amazing feature').
  4. Push to the branch (git push origin feature/amazing-feature).
  5. Open a Pull Request.

Development Guidelines

  • Follow PEP 8 style guidelines.
  • Add tests for new features.
  • Update documentation as needed.
  • Ensure all tests pass before submitting.