cxfreezx_unix-v1.py•1.14 kB
import os
import sys
from cx_Freeze import Executable, setup
# 1. 梳理项目依赖
required_packages = [
"os",
"fastapi",
"uvicorn",
"scipy",
"statsmodels",
"pydantic",
"logging",
"numpy",
"fastapi_mcp",
"arch",
"pandas",
"anyio",
"starlette",
"asyncio",
"concurrent.futures",
]
# 2. 需打包的外部文件/目录(源路径: 打包后路径)
include_files = [("config/config.json", "config/config.json"), "log/"]
build_exe_options = {
"packages": required_packages,
"excludes": ["tkinter", "PyQt5"],
"include_files": include_files,
"zip_include_packages": ["routers", "config"],
"build_exe": "dist/data-analysis-mcp",
}
# 3. 平台适配:命令行程序无需 Win32GUI;GUI程序需设 base="Win32GUI"
base = None
setup(
name="data-analysis-mcp",
version="0.1",
description="Data Analysis MCP Server",
options={"build_exe": build_exe_options},
executables=[
Executable(
script="main.py", # 修改为正确的入口脚本
base=base,
target_name="data-analysis-mcp",
)
],
)