feat: add PyInstaller support for executable builds

This commit is contained in:
LemonNexus 2026-02-11 19:57:22 +00:00
parent 019b8d0794
commit 841bc77330
3 changed files with 117 additions and 1 deletions

46
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,46 @@
name: Build Windows Executable
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyinstaller
pip install -r requirements.txt
- name: Build executable
run: |
pyinstaller icon_extractor.spec --clean
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: EU-Icon-Extractor-Windows
path: dist/EU-Icon-Extractor.exe
- name: Create Release
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v1
with:
files: dist/EU-Icon-Extractor.exe
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -4,6 +4,12 @@ A standalone tool for extracting item icons from Entropia Universe game cache.
<img src="icon.ico" width="64" height="64" alt="EU Icon Extractor">
## Download
**[Download Latest Release](https://github.com/ImpulsiveFPS/EU-Icon-Extractor/releases/latest)**
Download `EU-Icon-Extractor.exe` and run it - no installation needed!
## Description
Extract item icons from Entropia Universe cache and convert them to PNG format.
@ -12,11 +18,16 @@ Extract item icons from Entropia Universe cache and convert them to PNG format.
## Usage
### Option 1: Download Executable (Recommended)
1. Download `EU-Icon-Extractor.exe` from [Releases](https://github.com/ImpulsiveFPS/EU-Icon-Extractor/releases/latest)
2. Double-click to run - no installation needed!
### Option 2: Run from Source
```bash
python icon_extractor.py
```
### Requirements
#### Requirements
- Python 3.11+
- PyQt6: `pip install PyQt6`
- Pillow: `pip install Pillow`
@ -51,6 +62,21 @@ Documents\Entropia Universe\Icons\
Entropia Universe Icon Extractor is a fan-made resource and is not affiliated with [MindArk PE AB](https://www.mindark.com/). [Entropia Universe](https://www.entropiauniverse.com/) is a trademark of MindArk PE AB.
## Building from Source
If you want to build the executable yourself:
```bash
# Install dependencies
pip install pyinstaller
pip install -r requirements.txt
# Build executable
pyinstaller icon_extractor.spec --clean
```
The executable will be in `dist/EU-Icon-Extractor.exe`
## License
MIT License - Feel free to use and modify!

44
icon_extractor.spec Normal file
View File

@ -0,0 +1,44 @@
# PyInstaller spec file for EU Icon Extractor
# Usage: pyinstaller icon_extractor.spec
block_cipher = None
a = Analysis(
['icon_extractor.py'],
pathex=[],
binaries=[],
datas=[('icon.ico', '.'), ('assets/icon.ico', 'assets')],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='EU-Icon-Extractor',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False, # No console window
disable_windowed_traceback=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon='icon.ico', # App icon
)