首页 > 其他分享 >pycharm使用fastapi/uvicorn无法reload的问题

pycharm使用fastapi/uvicorn无法reload的问题

时间:2023-10-14 14:12:22浏览次数:38  
标签:fastapi uvicorn 问题 reload PyCharm issue 运行 加载

省流

pycharm的问题,建议控制台直接输uvicorn main:app --reload,而不是点击右上角的运行

相关issue

https://github.com/encode/uvicorn/issues/2000
https://youtrack.jetbrains.com/issue/PY-60962/os.killpid-signal.CRTLCEVENT-ignored-when-running-python-program-from-Pycharm
https://youtrack.jetbrains.com/issue/PY-63296/Pycharm-FastAPI-uvicorn-run-vs-terminal-differences-and-issue-with-slow-reloading-when-it-works
https://youtrack.jetbrains.com/issue/PY-63358

gpt省流

问题概述:
在PyCharm中使用uvicorn和FastAPI时,重新加载(reload)功能无法正常工作。当文件发生修改时,uvicorn重新加载非常缓慢或根本不重新加载,导致开发体验不佳。

讨论和探讨:

  1. 用户在GitHub上提出了此问题,指出在Windows 10上使用PyCharm时,uvicorn的重新加载速度非常慢。
  2. 有用户发现uvicorn源代码中的basereload.py文件的restart()函数可能存在问题。
  3. 一些用户发现该问题只在通过PyCharm运行程序时出现,直接在Python中运行或终端中使用uvicorn命令时没有此问题。
  4. 问题的作者在PyCharm问题跟踪器上报告了此问题,并提供了一个简单的程序来重现该问题。
  5. 用户们提供了不同的解决方法,如在运行配置中启用"Emulate terminal in output console"选项、使用调试模式运行项目或在Docker环境中运行项目。

解决方案:

  1. 降级到uvicorn v0.20.0版本,重新加载功能可以立即生效。
  2. 在PyCharm的运行配置中启用"Emulate terminal in output console"选项,可以解决重新加载速度慢的问题。然而,这会导致ANSI转义序列无法正常渲染。
  3. 使用调试模式运行项目或在基于Docker的运行环境中运行项目也可以绕过该问题。

总结:
在PyCharm中使用uvicorn和FastAPI时,重新加载功能可能会遇到速度慢或根本不重新加载的问题。这个问题可能与uvicorn源代码中的basereload.py文件的restart()函数有关,以及PyCharm在处理信号时的行为。目前,降级uvicorn版本、在运行配置中启用"Emulate terminal in output console"选项或使用调试模式或Docker环境运行项目是可能的解决方案。建议关注问题跟踪器页面以获取最新的更新和解决方案。

标签:fastapi,uvicorn,问题,reload,PyCharm,issue,运行,加载
From: https://www.cnblogs.com/aminor/p/17764109.html

相关文章

  • python3的模块FastAPI,APIRouter
    FastAPI将依赖项的值从include_router传递给路由FastAPI依赖项和include_router在FastAPI中,依赖项是一种重要的机制,用于处理从请求到响应的整个过程中所需的各种依赖关系,例如数据库连接、身份验证等。依赖项可以被注入到请求处理函数中,并在执行时提供所需的值。在FastAPI中,我......
  • fastapi关掉框架自带422响应文档
    app=FastAPI()defcustom_openapi():ifnotapp.openapi_schema:app.openapi_schema=get_openapi(title=app.title,version=app.version,openapi_version=app.openapi_version,description=app.desc......
  • 【Python】FastAPI 使用python3.6+构建API的Web框架
    现代、快速(高性能)的Web框架,用于构建基于Python的 API;基于Starlette和Pydantic库构建而成官网:https://fastapi.tiangolo.com/ 1、安装#对于生产环境,还需要一个ASGI服务器,如Uvicorn或Hypercorn#>pipinstall"uvicorn[standard]"pipinstallfastapipipi......
  • fastapi手动添加swagger文档描述
    fastapi手动添加swagger文档描述"""在正常开发过程中,fastapi会自动地将正确响应(status=200)和输入校验失败响应(status=422)添加到文档中.当有自定义的响应描述添加到文档中时,就需要我们手动添加到路径函数的:responses参数中.用户可以按照openapi的语法,将响应的描述信息添加......
  • fastapi swagger文档无法渲染问题
    由于fastapi默认使用国外的cdn获得支持swagger文档的js和css文件,所以在国内,/docs接口渲染不出来.解决方法1#在app生效之前,将生成swagger文档的方法替换掉.(在fastapi为:fastapi.openapi.docs.get_swagger_ui_html)​fromfastapiimportFastAPI,applicationsfromfa......
  • FastAPI学习-27 使用@app.api_route() 设置多种请求方式
    对同一个访问函数设置多个http请求方式api_route使用使用methods参数设置请求方式fromfastapiimportFastAPIapp=FastAPI()@app.api_route('/demo/b',methods=['get','post'])asyncdefdemo2():return{"msg":"demo2su......
  • fastapi-----SQLAlchemy对数据的增删改查操作(不使用crud+schemas)
     fromsqlalchemyimportcreate_engine,Column,String,Integerfromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmakerHOSTNAME='127.0.0.1'PORT="3306"USERNAME="root"PASSWORD=&......
  • FastAPI
    FastAPI1.FastAPI简介1.介绍 FastAPI是一个用于构建API快速(高性能)的web框架使用Python3.6+并基于标准的Python类型提示开发快捷性能和NodeJSGO相当并集成SwaggerUI 2.特征 快速:可与NodeJS和Go并肩的极高性能(归功于Starlette和Pydantic)最快的......
  • Fastapi 框架知识点总结
    【一】引入为什么Fastapi火【二】Starlette,Pydantic与FastAPI框架是什么关系?Starlette介绍Pydantic介绍三者之间的联系【三】Pydantic使用方法介绍类模型的定义及使用递归模型ORM操作【四】Fastapi环境搭建及初步使用Fastapi环境搭建注意不同版本的包......
  • 【2.0】Starlette,Pydantic 与 FastAPI 框架是什么关系?
    【一】介绍Starlette是个什么项目;IDE开发时Python3.5+版本的"typehints"的好处:简短、直观和标准的Python类型声明;介绍Pydantic包,FastAPI项目的开发为什么要使用Pydantic【二】Starlette【1】介绍Starlette是一种轻量级的ASGI框架/工具包,是构建高性能......