#!/usr/bin/env python3 # -*- coding: utf-8 -*- import os import sys import subprocess def run_command(command, shell=False): """运行命令并返回结果""" try: result = subprocess.run(command, shell=shell, check=True, capture_output=True, text=True) return result.returncode, result.stdout, result.stderr except subprocess.CalledProcessError as e: return e.returncode, e.stdout, e.stderr def main(): print("启动YOLO应用...") # 检查虚拟环境是否存在 if not os.path.exists("venv"): print("❌ 错误: 虚拟环境不存在!") print("请先运行 python3 setup_and_run.py 来创建环境和安装依赖") sys.exit(1) # 确定虚拟环境中的Python解释器路径 if os.name == 'nt': # Windows venv_python = os.path.join("venv", "Scripts", "python.exe") else: # macOS/Linux venv_python = os.path.join("venv", "bin", "python") # 检查虚拟环境的Python是否存在 if not os.path.exists(venv_python): print("❌ 错误: 虚拟环境损坏!") print("请重新创建虚拟环境") sys.exit(1) # 检查测试视频文件是否存在 if not os.path.exists("res/test.mp4"): print("❌ 错误: res/test.mp4 文件不存在!") print("请在 res/ 目录中放置名为 test.mp4 的视频文件") sys.exit(1) print("✅ 找到测试视频文件: res/test.mp4") # 运行应用 print("运行应用...") os.chdir("src") returncode, stdout, stderr = run_command([os.path.join("..", venv_python), "app.py"]) if returncode == 0: print("✅ 应用运行完成!") else: print(f"❌ 应用运行失败: {stderr}") sys.exit(1) if __name__ == "__main__": main()