from web import create_app from core.ModelManager import mMM import os import platform import shutil import asyncio import uvicorn from hypercorn.asyncio import serve from hypercorn.config import Config from myutils.MyTraceMalloc import MyTraceMalloc import subprocess print(f"Current working directory (run.py): {os.getcwd()}") app = create_app() async def run_quart_app(): config = Config() config.bind = ["0.0.0.0:5001"] await serve(app, config) def test(): mMM.test1() def run_subprocess(): # 启动子进程,用于接收 stdin 输入并通过 stdout 返回结果 process = subprocess.Popen( ['python3', '-c', ''' import sys # 从stdin读取输入 for line in sys.stdin: # 处理输入并写回stdout sys.stdout.write(f"Processed: {line}") sys.stdout.flush() # 刷新stdout输出缓冲区 '''], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True ) # 发送输入数据到子进程的 stdin input_data = "Hello, subprocess!\n" print(f"Sending to subprocess: {input_data}") process.stdin.write(input_data) process.stdin.flush() # 确保输入被传递给子进程 # 从子进程的 stdout 读取返回数据 output = process.stdout.readline() # 读取一行输出 print(f"Received from subprocess: {output}") # 检查是否有错误输出 error = process.stderr.read() if error: print(f"Error from subprocess: {error}") else: print("no error!!") # 关闭 stdin,并等待子进程完成 process.stdin.close() process.wait() if __name__ == '__main__': #test() #run_subprocess() system = platform.system() if system == "Windows": total, used, free = shutil.disk_usage("/") elif system == "Linux": """获取Linux系统的剩余存储空间""" statvfs = os.statvfs(os.getcwd()) free = statvfs.f_bavail * statvfs.f_frsize else: raise NotImplementedError(f"Unsupported operating system: {system}") print(free/(1024*1024)) # #内存监控线程 # myTM = MyTraceMalloc() # threading.Thread(target=myTM.trace_memory, daemon=True).start() #启动工作线程 mMM.start_work() # 启动所有通道的处理 #mVManager.start_check_rtsp() #线程更新视频在线情况 #启动web服务 asyncio.run(run_quart_app()) #uvicorn.run("run:app", host="0.0.0.0", port=5001, workers=4,reload=True)