如何利用fastapi执行python脚本
时间: 2024-09-25 08:00:22 浏览: 26
在FastAPI中,你可以利用Python的subprocess模块来执行外部Python脚本。这里是一个基本的示例:
```python
from fastapi import FastAPI
import subprocess
app = FastAPI()
@app.post("/run_script")
async def run_python_script(script_path: str):
"""
接收一个路径参数,然后异步运行指定的Python脚本
"""
try:
# 使用subprocess.run()执行Python脚本
output = await asyncio.get_event_loop().run_in_executor(None, subprocess.check_output, [script_path], shell=True)
# 输出脚本的执行结果
result = output.decode("utf-8").strip()
return {"status": "success", "result": result}
except Exception as e:
return {"status": "error", "message": str(e)}
```
在这个例子中,`run_python_script`路由接收一个`script_path`参数,该参数是要执行的Python脚本的完整路径。`subprocess.check_output`被用于执行脚本,并返回输出结果。如果执行过程中发生错误,会捕获异常并返回错误信息。