今天在使用uvicorn运行fastapi的app时,遇到了几个问题:
无法在code server上正常访问
由于我的开发环境在云上,用的code server,并非是本地,因此默认命令uvicorn main:app --reload
是无法正常访问的,因为code server代理的网址是https://example.com/proxy/8000
因此需要更改root-path才可以正常访问:
uvicorn main:app --root-path https://example.com/proxy/8000 --reload
对于python的自定义包无法正常载入解析
在我的main.py
中,导入自定义包:from myapp.utils.database import Database
但在myapp
文件夹下执行uvicorn main:app
时,会出现无法找到myapp
模块的错误,因此需要返回上一级文件夹,然后执行uvicorn myapp.main:app
,这样就可以了
reload监控文件夹设置
由于uvicorn在启用reload时,默认是监控当前文件夹的变动,但如果使用了uvicorn myapp.main:app
,则需要指定监控的文件:
uvicorn myapp.main:app --reload --reload-dir /path/to/myapp/
综上,全部命令为:
uvicorn myapp.main:app --reload --root-path https://example.com/proxy/8000 --reload-dir /path/to/myapp/
发表回复