94 lines
2.7 KiB
Batchfile
94 lines
2.7 KiB
Batchfile
@echo off
|
|
cd /d "%~dp0"
|
|
echo ======================================
|
|
echo Ultimate Investment Tool - Build EXE
|
|
echo ======================================
|
|
echo.
|
|
|
|
echo Installing dependencies...
|
|
python -m pip install pyinstaller tinyaes matplotlib --quiet
|
|
if errorlevel 1 (
|
|
echo ERROR: pip failed. Make sure Python is installed and on PATH.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo.
|
|
echo Copying source files from dist\ for bundling...
|
|
copy /Y dist\screener_gui.py screener_gui.py >nul
|
|
copy /Y dist\stock_screener.py stock_screener.py >nul
|
|
|
|
echo Building executable...
|
|
echo.
|
|
|
|
python -m PyInstaller ^
|
|
--onefile ^
|
|
--windowed ^
|
|
--key "UIT-K3y-2025-Ultr4Inv3st" ^
|
|
--name "StockScreener" ^
|
|
--hidden-import pandas ^
|
|
--hidden-import numpy ^
|
|
--hidden-import yfinance ^
|
|
--hidden-import requests ^
|
|
--hidden-import lxml ^
|
|
--hidden-import lxml.etree ^
|
|
--hidden-import html5lib ^
|
|
--hidden-import bs4 ^
|
|
--hidden-import appdirs ^
|
|
--hidden-import platformdirs ^
|
|
--hidden-import tkinter ^
|
|
--hidden-import tkinter.ttk ^
|
|
--hidden-import tkinter.messagebox ^
|
|
--hidden-import screener_gui ^
|
|
--hidden-import stock_screener ^
|
|
--hidden-import matplotlib ^
|
|
--hidden-import matplotlib.backends.backend_tkagg ^
|
|
--hidden-import matplotlib.figure ^
|
|
--hidden-import matplotlib.dates ^
|
|
--hidden-import matplotlib.ticker ^
|
|
--hidden-import winreg ^
|
|
--hidden-import hwid ^
|
|
--hidden-import license_check ^
|
|
--hidden-import activation_dialog ^
|
|
--hidden-import updater ^
|
|
--collect-all yfinance ^
|
|
--collect-all matplotlib ^
|
|
launcher.py
|
|
|
|
if errorlevel 1 (
|
|
echo.
|
|
echo BUILD FAILED. See errors above.
|
|
echo.
|
|
echo NOTE: If the error mentions '--key' or 'tinyaes', your PyInstaller version
|
|
echo may not support bytecode encryption. Remove the '--key' line above
|
|
echo and rebuild. Encryption requires PyInstaller 5.x + tinyaes.
|
|
echo.
|
|
echo Cleaning up temporary files...
|
|
if exist screener_gui.py del screener_gui.py
|
|
if exist stock_screener.py del stock_screener.py
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo.
|
|
echo Cleaning up temporary source copies from project root...
|
|
if exist screener_gui.py del screener_gui.py
|
|
if exist stock_screener.py del stock_screener.py
|
|
|
|
echo.
|
|
echo ======================================
|
|
echo SUCCESS!
|
|
echo.
|
|
echo Folder: dist\
|
|
echo - StockScreener.exe (distribute this)
|
|
echo - screener_gui.py (distribute alongside exe)
|
|
echo - stock_screener.py (distribute alongside exe)
|
|
echo.
|
|
echo DO NOT distribute:
|
|
echo - issue_license.py (admin only)
|
|
echo - supabase_schema.sql (admin only)
|
|
echo - hwid.py / license_check.py / updater.py / activation_dialog.py
|
|
echo (these are bundled inside the exe)
|
|
echo ======================================
|
|
pause
|