首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用FastApi和docker组合设置Pycharm调试器

用FastApi和docker组合设置Pycharm调试器
EN

Stack Overflow用户
提问于 2022-01-16 13:34:58
回答 1查看 858关注 0票数 1

我很难在Pycharm上附加一个调试器和一个坞-组合fastAPI安装程序。

码头工

代码语言:javascript
复制
    version: '3.8'

services:
  api:
    build: .
    volumes:
      - .:/app
    ports:
      - "8080:80"
    environment:
      - DATABASE_URL=postgresql://test_user:test_pwd@db:5432/test_db
    depends_on:
      - db
  
  db:
    image: postgres:13-alpine
    volumes:
      - postgres_data:/var/lib/postgres/data/
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=test_user
      - POSTGRES_PASSWORD=test_pwd
      - POSTGRES_DB=test_db

volumes:
  postgres_data:

码头文件:

代码语言:javascript
复制
FROM tiangolo/uvicorn-gunicorn:python3.9

COPY requirements.txt /tmp/requirements.txt
RUN pip install --no-cache-dir -r /tmp/requirements.txt

COPY ./app /app/app

CMD [ "/start-reload.sh" ]

当我启动应用程序时,我已经设置了一个远程解释器,它可以运行,但断点不起作用。

我尝试设置python配置:

应用程序启动但断点不太

如果你有什么建议?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-12 12:52:43

这对我起了作用(来自https://github.com/tiangolo/fastapi/issues/23#issuecomment-571602787):

如下所示,该调试器可以在端口-组合远程解释器中运行重新加载

代码语言:javascript
复制
from fastapi import FastAPI
import uvicorn

app = FastAPI()

@app.get("/")
def root():
    a = "a"
    b = "b" + a
    return {"hello world": b}


if __name__ == '__main__':
    uvicorn.run("main:app", host='0.0.0.0', port=8000, reload=True)

注意到它是"main: app“而不是app,否则您会得到一个错误:警告:您必须将应用程序作为导入字符串传递,以启用‘重新加载’或'workers'.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70730551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档