| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env python3
- import os
- import subprocess
- import sys
- import multiprocessing
- def main():
- main_file = "main_robot.py"
- output_name = "robot_ai"
- build_dir = "build"
- if not os.path.exists(main_file):
- print("错误: 找不到 main_robot.py")
- return False
- jobs = multiprocessing.cpu_count()
- # 使用参数列表以避免在 Windows PowerShell 下多行续行被误解析
- cmd = [
- sys.executable,
- "-m",
- "nuitka",
- "--standalone",
- f"--jobs={jobs}",
- f"--output-dir={build_dir}",
- f"--output-filename={output_name}",
- "--nofollow-import-to=pytest,unittest,setuptools",
- "--include-module=socket",
- "--include-module=ssl",
- "--include-data-dir=config=config",
- # 显式包含 AIUI 运行所需的本地库
- # Windows x64 AIUI 动态库
- "--include-data-files=config/aiui/x64/*.dll=config/aiui/x64/",
- # Linux aarch64 AIUI 动态库(生产环境)
- "--include-data-files=config/aiui/arm/*.so=config/aiui/arm/",
- main_file,
- ]
- print("执行:", " ".join(cmd))
- # 不使用 shell,避免转义与续行差异导致参数丢失
- return subprocess.run(cmd).returncode == 0
- if __name__ == "__main__":
- sys.exit(0 if main() else 1)
|