Skip to content

Commit 45233cc

Browse files
author
Ahsan Ullah
committed
Initial release - PyInstaller Advanced Builder v1.0.0
0 parents  commit 45233cc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+3600
-0
lines changed

.claude/settings.local.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(python -m py_compile:*)"
5+
]
6+
}
7+
}

README.md

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
<h1 align="center">PyInstaller Advanced Builder</h1>
2+
3+
<p align="center">
4+
A .py to .exe converter using a modern graphical interface and <a href="https://pyinstaller.org/">PyInstaller</a> in Python.
5+
</p>
6+
7+
<p align="center">
8+
<img src="imgs/main.png" alt="PyInstaller Advanced Builder" width="700">
9+
</p>
10+
11+
<p align="center">
12+
<img src="https://img.shields.io/badge/python-3.8%20|%203.9%20|%203.10%20|%203.11%20|%203.12-blue" alt="Python Version">
13+
<img src="https://img.shields.io/badge/license-MIT-green" alt="License">
14+
<img src="https://img.shields.io/badge/platform-windows-lightgrey" alt="Platform">
15+
<img src="https://img.shields.io/badge/PyQt5-5.15+-blueviolet" alt="PyQt5">
16+
<img src="https://img.shields.io/badge/PyInstaller-6.0+-orange" alt="PyInstaller">
17+
</p>
18+
19+
---
20+
21+
## Why This Tool?
22+
23+
PyInstaller is powerful but the command-line workflow gets repetitive. This tool wraps it in a clean interface with:
24+
25+
- Visual options instead of remembering flags
26+
- Real-time build output with error highlighting
27+
- Save/load build presets for different projects
28+
- Plugin system for custom post-build tasks
29+
- Dark and light themes
30+
31+
---
32+
33+
## Quick Start
34+
35+
```bash
36+
git clone https://github.com/AIMasterRace/PythonToEXE.git
37+
cd PythonToEXE
38+
pip install -r requirements.txt
39+
python run.py
40+
```
41+
42+
That's it. The window opens, you're ready to build.
43+
44+
---
45+
46+
## Screenshots
47+
48+
<details>
49+
<summary><b>Basic Settings</b> — Configure script, output, icon, build mode</summary>
50+
<br>
51+
<img src="imgs/main.png" alt="Main Tab" width="650">
52+
</details>
53+
54+
<details>
55+
<summary><b>Advanced Options</b> — Hidden imports, exclude modules, data files</summary>
56+
<br>
57+
<img src="imgs/advance_tab.png" alt="Advanced Tab" width="650">
58+
</details>
59+
60+
<details>
61+
<summary><b>Installer Setup</b> — NSIS / Inno Setup configuration</summary>
62+
<br>
63+
<img src="imgs/installer_tab.png" alt="Installer Tab" width="650">
64+
</details>
65+
66+
<details>
67+
<summary><b>Plugins</b> — Extend with custom post-build tasks</summary>
68+
<br>
69+
<img src="imgs/plugins_tab.png" alt="Plugins Tab" width="650">
70+
</details>
71+
72+
---
73+
74+
## Features
75+
76+
| Feature | Description |
77+
|---------|-------------|
78+
| One-File / One-Dir | Choose between single exe or folder output |
79+
| Console Toggle | Hide console window for GUI apps |
80+
| Icon Support | Custom `.ico` file for your executable |
81+
| Hidden Imports | Add modules PyInstaller misses |
82+
| Exclude Modules | Remove unwanted modules (reduce size) |
83+
| Data Files | Bundle assets, configs, etc. |
84+
| Clean Build | Auto-cleanup previous build cache |
85+
| Real-time Logs | Watch build progress live |
86+
| Presets | Save and load build configurations |
87+
| Themes | Dark and light mode |
88+
| Plugins | Run custom tasks after build |
89+
90+
---
91+
92+
## Build Options Explained
93+
94+
**One File** — Packs everything into a single `.exe`. Slower startup but easy to distribute.
95+
96+
**One Directory** — Creates a folder with `.exe` + dependencies. Faster startup.
97+
98+
**Console Window** — Keep checked for CLI apps. Uncheck for GUI apps (no black window).
99+
100+
**Clean Build** — Removes old build cache. Recommended to avoid stale file issues.
101+
102+
**Exclude Modules** — Comma-separated list. Example: `tkinter, unittest, pydoc`
103+
104+
---
105+
106+
## Keyboard Shortcuts
107+
108+
| Key | Action |
109+
|-----|--------|
110+
| `F5` | Start Build |
111+
| `Ctrl+N` | New Project |
112+
| `Ctrl+O` | Open Script |
113+
| `Ctrl+S` | Save Preset |
114+
| `Ctrl+L` | Load Preset |
115+
| `Ctrl+T` | Toggle Theme |
116+
| `Ctrl+Shift+C` | Clear Logs |
117+
118+
---
119+
120+
## Plugins
121+
122+
The tool supports plugins for post-build automation. Two examples included:
123+
124+
- **Zip Output** — Creates a `.zip` archive of the build
125+
- **Clean Build Artifacts** — Removes `.spec` and `build/` folder
126+
127+
Want to create your own? **[See the Plugin Guide →](plugins/README.md)**
128+
129+
---
130+
131+
## Project Structure
132+
133+
```
134+
PythonToEXE/
135+
├── app/
136+
│ ├── main.py # Entry point
137+
│ ├── core/
138+
│ │ ├── builder.py # PyInstaller wrapper
139+
│ │ ├── config_manager.py # Settings persistence
140+
│ │ ├── logger.py # Log system
141+
│ │ ├── plugin_loader.py # Plugin loader
142+
│ │ └── venv_manager.py # Virtualenv support
143+
│ ├── utils/ # Helper modules
144+
│ └── windows/ # UI components
145+
├── plugins/ # Drop plugins here
146+
├── imgs/ # Screenshots
147+
├── requirements.txt
148+
└── run.py
149+
```
150+
151+
---
152+
153+
## Requirements
154+
155+
- Python 3.8 or higher
156+
- PyQt5
157+
- PyInstaller 6.0+
158+
159+
```bash
160+
pip install -r requirements.txt
161+
```
162+
163+
---
164+
165+
## Configuration Storage
166+
167+
Settings save automatically to:
168+
169+
```
170+
~/.pyinstaller_builder/
171+
├── config.json # App settings
172+
└── presets/ # Saved build presets
173+
```
174+
175+
---
176+
177+
## Roadmap
178+
179+
- [ ] Multiple Python interpreter support
180+
- [ ] PyInstaller version selector
181+
- [ ] NSIS/Inno Setup full integration
182+
- [ ] Spec file editor
183+
- [ ] Dependency size analyzer
184+
- [ ] Build queue for batch processing
185+
186+
---
187+
188+
## Contributing
189+
190+
Found a bug? Have an idea? Open an issue or submit a PR.
191+
192+
---
193+
194+
## License
195+
196+
MIT License — use it, modify it, ship it.
197+
198+
---
199+
200+
<p align="center">
201+
Made with PyQt5 and PyInstaller
202+
</p>

__pycache__/run.cpython-311.pyc

313 Bytes
Binary file not shown.

app/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
"""PyInstaller Advanced Builder - A GUI tool for PyInstaller."""
2+
3+
__version__ = "1.0.0"
4+
__app_name__ = "PyInstaller Advanced Builder"
291 Bytes
Binary file not shown.
2.87 KB
Binary file not shown.

app/core/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"""Core modules for PyInstaller Advanced Builder."""
204 Bytes
Binary file not shown.
11.7 KB
Binary file not shown.
10.5 KB
Binary file not shown.

0 commit comments

Comments
 (0)