28 lines
706 B
Python
28 lines
706 B
Python
import asyncio
|
|
import sys
|
|
import uvicorn
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# Windows 设置事件循环策略
|
|
if sys.platform == "win32":
|
|
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
|
|
|
# 创建配置对象
|
|
config = uvicorn.Config(
|
|
"main:app",
|
|
host="0.0.0.0",
|
|
port=8000,
|
|
loop="asyncio", # 强制使用 asyncio 事件循环
|
|
workers=2, # 如果需要多进程,可以取消注释
|
|
)
|
|
server = uvicorn.Server(config)
|
|
|
|
# 创建并设置事件循环
|
|
if sys.platform == "win32":
|
|
loop = asyncio.new_event_loop()
|
|
asyncio.set_event_loop(loop)
|
|
|
|
# 运行服务器
|
|
asyncio.run(server.serve())
|