Mac命令行运行Uvicorn报错:无法识别参数求助
Uvicorn命令参数无法识别问题求助
在Mac系统命令行运行FastAPI应用时,执行Uvicorn启动命令出现参数无法识别错误:
(env) mydir$ uvicorn main:app --port 8000 --host 0.0.0.0 --reload ... uvicorn: error: unrecognized arguments: main:app --port 8000 --host 0.0.0.0 --reload ...
已通过which uvicorn确认使用的是虚拟环境中的Uvicorn,当前环境版本为uvicorn 0.34.2 + CPython 3.11.2 on Darwin。
已尝试但无效的操作
- 卸载并重装整个虚拟环境;
- 仅卸载并重装uvicorn;
- 直接执行带参数的Uvicorn命令,输出如下:
(env) mydir$ uvicorn main:app --port 8000 --host 0.0.0.0 --reload INFO: Will watch for changes in these directories: ['/Users/XXX/Documents/mydir'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [7067] using StatReload usage: uvicorn [-h] [--logs-dir LOGS_DIR] uvicorn: error: unrecognized arguments: main:app --port 8000 --host 0.0.0.0 --reload
- 以Python模块方式运行,输出如下:
(env) mydir$ python -m uvicorn main:app --port 8000 --host 0.0.0.0 --reload INFO: Will watch for changes in these directories: ['/Users/XXX/Documents/mydir'] INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: Started reloader process [6489] using StatReload usage: __main__.py [-h] [--logs-dir LOGS_DIR] __main__.py: error: unrecognized arguments: main:app --port 8000 --host 0.0.0.0 --reload
- 使用无参数的Uvicorn命令,输出如下:
(env) mydir$ uvicorn main:app usage: uvicorn [-h] [--logs-dir LOGS_DIR] uvicorn: error: unrecognized arguments: main:app (env) mydir$
可运行但存在弊端的操作
- 直接运行Python main文件:无自动重载功能
python3 -m main
- 在main.py中硬编码命令行参数:不适用于生产环境
if __name__ == "__main__": uvicorn.run( "main:app", host="0.0.0.0", port=8000, reload=True, )
现寻求解决Uvicorn参数无法识别问题的有效方法。
内容的提问来源于stack exchange,提问作者engineer-x
相关产品推荐
相关产品推荐

