作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由诗歌构建的 fastapi 项目。我想使用 pyproject.tom 中的脚本部分运行应用程序,如下所示:
poetry run start
该部分的双引号内是什么?
[tool.poetry.scripts]
start = ""
我尝试运行以下脚本。
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
def main():
print("Hello World")
uvicorn.run(app, host="0.0.0.0", port=8000, reload=True, workers=2)
if __name__ == "__main__":
main()
它停止应用程序并只显示这样的警告。
WARNING: You must pass the application as an import string to enable 'reload' or 'workers'.
最佳答案
我找到了解决这个问题的方法。见下文:
在 pyproject.toml
[tool.poetry.scripts]
start = "my_package.main:start"
在您的
main.py
里面
my_package
文件夹。
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
def start():
"""Launched with `poetry run start` at root level"""
uvicorn.run("my_package.main:app", host="0.0.0.0", port=8000, reload=True)
关于fastapi - 如何从 Poetry 运行 FastAPI 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63809553/
我是一名优秀的程序员,十分优秀!