【问题标题】:uvicorn is not working when called from the terminal从终端调用时,uvicorn 不工作
【发布时间】:2019-11-25 05:47:53
【问题描述】:

我尝试通过 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```

【问题讨论】:

    标签: python python-3.x asgi uvicorn


    【解决方案1】:

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

    python -m uvicorn 
    

    【讨论】:

      【解决方案2】:

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

      uvicorn main:app --reload

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

      遇到同样的问题(zsh: uvicorn command not found)

      对我有用的解决方案

      python -m uvicorn main:app --reload

      为什么会起作用

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

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

      【讨论】:

      • 如果你已经安装了 uvicorn 使用 pip3 并且你正在使用 python3 然后将命令更改为 'python3 -m uvicorn main:app --reload'
      【解决方案3】:

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

      直接执行:

      /home/vhawk19/.local/bin/unvicorn
      

      或者只是先添加到路径:

      export PATH=$PATH:$HOME/.local/bin
      

      你可以把它放在你的 shell rc 文件中。

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题。 我正在使用pyenv-win 来管理 Python 版本。

        以下命令设法解决了这个问题

        $ pyenv rehash
        

        【讨论】:

          【解决方案5】:

          1.首先知道uvicorn的位置。你可以通过输入命令知道这一点

          $locate uvicorn
          

          现在,选择看起来像这样的路径

          /home/username/.local/bin/uvicorn 
          

          2.然后,输入命令

          $ls -a          
          

          在这里,您可以看到一个名为 .bashrc 和 .bash_profile 的隐藏文件。现在,我们必须在 .bashrc 文件或 .bash_profile 中添加我们的 uvicorn 路径。为此我们使用 nano 文本编辑器并在.bashrc 中写入以下内容并保存

          $nano .bashrc
          
          export PATH:$PATH:/home/username/.local/bin
          

          【讨论】:

          • .bashrc 和 .bash_profile 是 bash 配置文件(bash shell 脚本),当它以交互方式启动时,bash 就会运行。它初始化一个交互式(非登录)shell 会话,并从这些文件中读取配置$HOME/.bashrc
          【解决方案6】:

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

          不确定linux 路径,但在 Windows 中,您需要在 Path 环境变量中包含这两个。

          D:\Programme\Python\Python37
          D:\Programme\Python\Python37\Scripts
          

          【讨论】:

            【解决方案7】:

            创建新的虚拟环境后,如果你得到 已满足要求

            通过执行以下命令强制卸载所有包: pip freeze > requirements.txt

            pip 卸载 -r requirements.txt -y

            现在使用以下命令检查包: 点子列表

            如果 uvicorn 存在于 requirements.txt 中,命令如 uvicorn app.main:app --reload 会工作的。

            如果不使用安装 uvicorn 点安装uvicorn

            & 然后尝试执行 uvicorn app.main:app --reload

            现在你应该可以找到 No packages,或者一些默认的包,例如 pip、wheel 等。

            从需求重新安装所有软件包: pip install -r requirements.txt

            【讨论】:

              【解决方案8】:

              这个问题的一个非常常见的原因是 uvicorn 服务器不是从 root 运行的。执行以下步骤来解决这个问题:

              1. 使用命令以 root 用户身份登录:

              sudo -i

              1. 导航到您的虚拟环境位置并激活它
              2. 现在重启 uvicorn 服务器

              【讨论】:

                【解决方案9】:

                sudo pip installpip install 可能位于两个不同的位置。

                【讨论】:

                  猜你喜欢
                  • 2012-11-07
                  • 2020-02-27
                  • 1970-01-01
                  • 2017-07-13
                  • 2018-12-25
                  • 2015-11-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多