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

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

在这里插入图片描述

一、前言

1、解决方法

(1)控制台执行uvicorn指令

pycharm的问题,建议控制台直接输uvicorn main:app --reload,而不是在代码里 uvicorn.run() 运行

(2)将uvicorn版本降到0.20.0(推荐)

pip install uvicorn==0.20.0

2、原因探究

相关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省流(kimi)
问题概述:
在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的运行环境中运行项目也可以绕过该问题。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风吹落叶花飘荡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值