@echo off REM GasFlux Web API - Build executable with PyInstaller REM This script builds a standalone executable using Waitress WSGI server echo Building GasFlux Web API executable... REM Check if PyInstaller is installed py -3 -c "import PyInstaller" >nul 2>&1 if errorlevel 1 ( echo Error: PyInstaller is not installed. Please run: echo py -3 -m pip install pyinstaller waitress pause exit /b 1 ) REM Check if Waitress is installed py -3 -c "import waitress" >nul 2>&1 if errorlevel 1 ( echo Error: Waitress is not installed. Please run: echo py -3 -m pip install waitress pause exit /b 1 ) REM Create dist directory if it doesn't exist if not exist "dist" mkdir dist echo Creating executable with PyInstaller... REM Build the executable pyinstaller --onefile ^ --name GasFluxAPI ^ --hidden-import waitress ^ --hidden-import flask ^ --hidden-import werkzeug ^ --hidden-import yaml ^ --hidden-import pandas ^ --hidden-import numpy ^ --hidden-import flask_cors ^ --hidden-import psutil ^ --hidden-import skgstat ^ --hidden-import skgstat.Variogram ^ --hidden-import skgstat.OrdinaryKriging ^ --hidden-import skgstat.DirectionalVariogram ^ --hidden-import plotly ^ --hidden-import plotly.graph_objects ^ --hidden-import plotly.express ^ --hidden-import plotly.subplots ^ --hidden-import pybaselines ^ --hidden-import scipy ^ --hidden-import scipy.odr ^ --hidden-import scipy.signal ^ --hidden-import scipy.stats ^ --hidden-import scipy.integrate ^ --hidden-import scipy.optimize ^ --hidden-import molmass ^ --hidden-import openpyxl ^ --hidden-import pyproj ^ --hidden-import jinja2 ^ --hidden-import requests ^ --hidden-import urllib3 ^ --hidden-import matplotlib ^ --hidden-import matplotlib.pyplot ^ --hidden-import matplotlib.backends ^ --hidden-import matplotlib.backends.backend_agg ^ --hidden-import matplotlib.figure ^ --hidden-import matplotlib.axes ^ --hidden-import matplotlib.lines ^ --hidden-import matplotlib.patches ^ --hidden-import matplotlib.text ^ --hidden-import matplotlib.transforms ^ --hidden-import tqdm ^ --hidden-import certifi ^ --hidden-import charset_normalizer ^ --hidden-import geopandas ^ --hidden-import shapely ^ --hidden-import fiona ^ --hidden-import simplekml ^ --hidden-import joblib ^ --exclude-module tkinter ^ --add-data "src\gasflux\gasflux_config.yaml;src\gasflux" ^ --add-data "src\gasflux\templates\mass_balance_template.html;src\gasflux\templates" ^ --add-data "gasflux.ini;." ^ --add-data "gasflux.ini.example;." ^ server_waitress.py if errorlevel 1 ( echo Error: Failed to build executable pause exit /b 1 ) echo. echo Build completed successfully! echo Executable created: dist\GasFluxAPI.exe echo. echo To run the server: echo GasFluxAPI.exe echo. echo The server will start on http://localhost:5001 echo Make sure gasflux.ini is in the same directory as the executable, echo or configure paths via environment variables. echo. pause