# 🚀 PyInstaller Automation Tool A powerful and interactive Python script that automates the process of creating executables from Python scripts using PyInstaller. This tool provides a user-friendly menu-driven interface to configure and build your applications with ease. ## 📋 Features - 🖥️ **Interactive Menu** - Easy-to-use terminal interface - ⚡ **Quick Configuration** - Set all PyInstaller options through simple prompts - 📦 **Multiple Build Modes** - Choose between one-file or one-directory compilation - 🎯 **Platform-Specific** - Builds for your current operating system - 🔧 **Customizable Options** - Icon, console mode, optimization levels, and more - 📁 **Additional Files Support** - Include extra files and directories in your build - ✅ **Build Summary** - Review your configuration before compiling - 🛡️ **Error Handling** - Comprehensive error checking and feedback ## 🚀 Quick Start ### Prerequisites - Python 3.6 or higher - PyInstaller (will be installed automatically if missing) ### Installation 1. **Download the script:** ```bash wget https://git.opentty.xyz/fetuber4095/build-python/raw/branch/master/build.py ``` 2. **Make it executable (Linux/Mac):** ```bash chmod +x build.py ``` ### Usage 1. **Run the script:** ```bash python build.py ``` 2. **Follow the interactive prompts:** - 📜 **Script Path** - Enter the full path to your Python file - 📦 **Compilation Mode** - Choose between single executable or directory with dependencies - 🖥️ **Console Mode** - Select whether to show console window or run as GUI application - ⚡ **Optimization** - Choose Python optimization level - 🎨 **Custom Icon** - Add a custom icon to your executable - 📁 **Additional Files** - Include extra files needed by your application 3. **Review and confirm** the build summary 4. **Wait for compilation** - The tool will automatically run PyInstaller with your selected options ## 🛠️ Configuration Options ### Build Modes - **One-file**: Creates a single executable containing all dependencies - **One-directory**: Creates a folder with the executable and all dependency files ### Console Options - **With console**: Shows terminal window (ideal for CLI applications) - **Without console**: Runs as background process (ideal for GUI applications) ### Optimization Levels - **No optimization**: Standard compilation - **Basic optimization (-O)**: Removes assert statements and debug code - **Maximum optimization (-OO)**: Additional bytecode optimization ### Additional Features - **Custom icons** (.ico for Windows, .png for Linux/Mac) - **File inclusion** - Add data files, images, or configuration files - **UPX compression** - Reduce executable size (enabled by default) ## 📁 Output Structure After successful compilation, your files will be organized as follows: ``` project/ ├── build.py ├── your_script.py ├── dist/ │ ├── your_script # Linux executable │ ├── your_script.exe # Windows executable │ └── your_script/ # Directory mode output ├── build/ │ └── temporary_files/ └── your_script.spec # PyInstaller specification file ``` ## 💡 Usage Examples ### Basic GUI Application ```bash python build.py # Select: One-file, Without console, Add icon ``` ### Command Line Tool ```bash python build.py # Select: One-file, With console, No optimization ``` ### Application with Data Files ```bash python build.py # Select: One-directory, Add additional files (config, images, etc.) ``` ## 🐛 Troubleshooting ### Common Issues 1. **PyInstaller not found** - The script will automatically offer to install it - Or install manually: `pip install pyinstaller` 2. **Missing dependencies** - Ensure all Python imports in your script are available - The tool will show PyInstaller's error messages for debugging 3. **Large executable size** - Use UPX compression (enabled by default) - Consider one-directory mode for very large applications 4. **Anti-virus false positives** - Some anti-virus software may flag PyInstaller executables --- ## 📄 License This project is open source and available under the [MIT License](LICENSE). ## 🙏 Acknowledgments - Built with [PyInstaller](https://www.pyinstaller.org/) - Inspired by the need for simpler executable creation workflows