- Flask + SQLAlchemy 物料/入库/出库/BOM/生产订单全模块管理 - PyInstaller 打包为单文件 EXE (双击运行, 自动建库) - 物料维度: 入库总数量 / 消耗总数量 / 逐次入库流水(含时间) - BOM 详情展示组成物料的规格型号与单套用量 - 支持 Altium / 嘉立创 BOM 批量导入(文本与 Excel 双通道) - 内置端到端验证脚本(tools/_exe_util.py 等, 清理进程树防残留)
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
"""打包单文件 EXE (PyInstaller --onefile --windowed)
|
|
|
|
冻结后:
|
|
- 模板/静态走 sys._MEIPASS (用 --add-data 打入)
|
|
- 库文件 app.db 落在 exe 同目录 (app.py 中 EXE_DIR 处理)
|
|
- 启动时自动打开浏览器 (app.py __main__ 中 webbrowser.open)
|
|
|
|
用法: venv 的 python build_exe.py
|
|
"""
|
|
import os, sys, platform
|
|
from PyInstaller.__main__ import run
|
|
|
|
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
sep = ";" if platform.system() == "Windows" else ":"
|
|
|
|
args = [
|
|
os.path.join(HERE, "app.py"),
|
|
"--onefile",
|
|
"--windowed",
|
|
"--name", "MaterialWMS",
|
|
"--distpath", os.path.join(HERE, "dist"),
|
|
"--workpath", os.path.join(HERE, "build"),
|
|
"--specpath", os.path.join(HERE, "build"),
|
|
"--add-data", os.path.join(HERE, "templates") + sep + "templates",
|
|
"--add-data", os.path.join(HERE, "static") + sep + "static",
|
|
"--hidden-import", "flask",
|
|
"--hidden-import", "flask_sqlalchemy",
|
|
"--hidden-import", "sqlalchemy",
|
|
"--hidden-import", "openpyxl",
|
|
"--noconfirm",
|
|
]
|
|
print("PyInstaller args:", args)
|
|
run(args)
|
|
print("BUILD DONE ->", os.path.join(HERE, "dist", "MaterialWMS.exe"))
|