Files
UAV-CO2/build_exe.bat
DXC fa0cd769a8 fix(build_exe.bat): 修复 PyInstaller 打包脚本——补充缺失依赖和调整配置
1. 补充 25+ 个 hidden-import(打包后运行崩溃的根因):
   plotly/pybaselines/scipy子模块/molmass/openpyxl/pyproj/jinja2/
   requests/urllib3/certifi/geopandas/shapely/fiona/simplekml/joblib/
   skgstat.DirectionalVariogram/tqdm 等

2. 补充 --add-data 文件(运行时 FileNotFound 的根因):
   mass_balance_template.html / gasflux.ini / gasflux.ini.example

3. 修复 python 命令兼容性:改为 py -3(适配 Windows Store Python)

4. 修正端口号提示:5000 → 5001(与 gasflux.ini 一致)
2026-07-10 15:20:16 +08:00

105 lines
3.1 KiB
Batchfile

@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