从终端调用时 uvicorn 不工作

var*_*hna 2 python python-3.x asgi uvicorn

我尝试通过 pip3 在系统上安装 uvicorn ,但我无法从命令行运行它。有关如何解决此问题的任何指示?

Requirement already satisfied: uvicorn in /home/vhawk19/.local/lib/python3.7/site-packages (0.10.8)
Requirement already satisfied: uvloop>=0.14.0; sys_platform != "win32" and sys_platform != "cygwin" and platform_py
thon_implementation != "pypy" in /home/vhawk19/.local/lib/python3.7/site-packages (from uvicorn) (0.14.0)
Requirement already satisfied: websockets==8.* in /home/vhawk19/.local/lib/python3.7/site-packages (from uvicorn)
(8.1)
Requirement already satisfied: click==7.* in /home/vhawk19/.local/lib/python3.7/site-packages (from uvicorn) (7.0
)
Requirement already satisfied: h11==0.8.* in /home/vhawk19/.local/lib/python3.7/site-packages (from uvicorn) (0.8
.1)
Requirement already satisfied: httptools==0.0.13; sys_platform != "win32" and sys_platform != "cygwin" and platform
_python_implementation != "pypy" in /home/vhawk19/.local/lib/python3.7/site-packages (from uvicorn) (0.0.13)
vhawk19@api-server:~/api-server$ uvicorn
-bash: uvicorn: command not found```
Run Code Online (Sandbox Code Playgroud)

小智 45

我最近安装了 fastapi,uvicorn 并尝试运行

uvicorn main:app --reload

我正在使用zsh(shell 类型无关紧要)和pyenv虚拟环境

遇到了同样的麻烦(zsh:未找到 uvicorn 命令)

对我有用的解决方案

python -m uvicorn main:app --reload

为什么它有效

这是因为当我们安装 uvicorn 时,它会安装一些系统二进制文件,我们可能必须将其添加到终端才能捕获的路径中

否则,我们需要通过 python 让终端知道二进制文件

  • 如果您已经安装了使用 pip3 的 uvicorn 并且正在使用 python3,则将命令更改为 'python3 -m uvicorn main:app --reload' (4认同)

wim*_*wim 6

您的 bin 目录似乎不在 $PATH 上。

直接执行:

/home/vhawk19/.local/bin/unvicorn
Run Code Online (Sandbox Code Playgroud)

或者先添加到路径:

export PATH=$PATH:$HOME/.local/bin
Run Code Online (Sandbox Code Playgroud)

您可以将其放入 shell rc 文件中。


skb*_*kbr 6

您可以直接从 cmd 使用以下命令。该路径适合我的情况,但我仍然使用 uvicorn 命令收到错误消息。

python -m uvicorn 
Run Code Online (Sandbox Code Playgroud)


Dev*_*ava 5

我用了

python3 -m uvicorn main:app --reload
Run Code Online (Sandbox Code Playgroud)

它有效,因为我的电脑中有多个版本的 python。


abh*_*ilb 2

检查你的PATH环境变量。它也应该包括包的路径unicorn

不确定linux路径,但在 Windows 中,您需要将这两个路径添加到 Path 环境变量中。

D:\Programme\Python\Python37
D:\Programme\Python\Python37\Scripts
Run Code Online (Sandbox Code Playgroud)