从终端调用时 uvicorn 不工作
uvicorn is not working when called from the terminal
我尝试通过有效的 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```
看起来你的 bin 目录不在 $PATH 上。
直接执行:
/home/vhawk19/.local/bin/unvicorn
或者先添加到路径:
export PATH=$PATH:$HOME/.local/bin
您可以将其放入您的 shell rc 文件中。
检查您的 PATH
环境变量。它也应该包括 unicorn
包的路径。
不确定 linux
路径,但在 windows 中,您需要在 Path 环境变量中包含这两个路径。
D:\Programme\Python\Python37
D:\Programme\Python\Python37\Scripts
创建新的虚拟环境后,如果你得到
要求已满足
通过执行以下命令强制卸载所有软件包:
点冻结 > requirements.txt
pip uninstall -r requirements.txt -y
现在检查包使用:
点列表
如果 uvicorn 存在于 requirements.txt,命令如 uvicorn app.main:app --reload
会工作。
如果不安装 uvicorn 使用
pip 安装 uvicorn
& 然后尝试执行 uvicorn app.main:app --reload
现在你应该可以找到No packages,或者一些默认的包比如pip, wheel等等
根据要求重新安装所有软件包:
pip install -r requirements.txt
您可以直接从 cmd 使用下面的命令。该路径适合我的情况,但我仍然在使用 uvicorn 命令时遇到错误。
python -m uvicorn
我运行遇到了同样的问题。
我正在使用 pyenv-win 来管理 Python 个版本。
以下命令成功解决了问题
$ pyenv rehash
1.First知道uvicorn所在的位置。你可以通过输入命令
知道这一点
$locate uvicorn
现在,select看起来像
的路径
/home/username/.local/bin/uvicorn
2.Then,键入命令
$ls -a
在这里,您可以看到一个名为.bashrc
和.bash_profile的隐藏文件。现在,我们必须在 .bashrc
文件或 .bash_profile 中添加我们的 uvicorn 路径。为此,我们使用 nano 文本编辑器并在 .bashrc
中写入以下内容并保存
$nano .bashrc
export PATH:$PATH:/home/username/.local/bin
我最近安装了 fastapi、uvicorn 并尝试 运行
uvicorn main:app --reload
我正在使用 zsh
(shell 类型无关紧要)和 pyenv
用于虚拟环境
遇到同样的麻烦(zsh:未找到 uvicorn 命令)
对我有用的解决方案
python -m uvicorn main:app --reload
为什么有效
这是因为当我们安装 uvicorn 时,它会安装一些系统二进制文件,我们可能必须将这些二进制文件添加到终端才能捕获的路径中
否则,我们需要通过python
让终端知道二进制文件
此问题的一个非常常见的原因是 uvicorn 服务器不是 运行 来自 root。执行以下步骤来解决此问题:
- 使用命令以 root 用户身份登录:
sudo -i
- 导航到您的虚拟环境位置并激活它
- 现在重启 uvicorn 服务器
sudo pip install
和 pip install
可能在两个不同的位置。
我尝试通过有效的 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```
看起来你的 bin 目录不在 $PATH 上。
直接执行:
/home/vhawk19/.local/bin/unvicorn
或者先添加到路径:
export PATH=$PATH:$HOME/.local/bin
您可以将其放入您的 shell rc 文件中。
检查您的 PATH
环境变量。它也应该包括 unicorn
包的路径。
不确定 linux
路径,但在 windows 中,您需要在 Path 环境变量中包含这两个路径。
D:\Programme\Python\Python37
D:\Programme\Python\Python37\Scripts
创建新的虚拟环境后,如果你得到 要求已满足
通过执行以下命令强制卸载所有软件包: 点冻结 > requirements.txt
pip uninstall -r requirements.txt -y
现在检查包使用: 点列表
如果 uvicorn 存在于 requirements.txt,命令如 uvicorn app.main:app --reload 会工作。
如果不安装 uvicorn 使用 pip 安装 uvicorn
& 然后尝试执行 uvicorn app.main:app --reload
现在你应该可以找到No packages,或者一些默认的包比如pip, wheel等等
根据要求重新安装所有软件包: pip install -r requirements.txt
您可以直接从 cmd 使用下面的命令。该路径适合我的情况,但我仍然在使用 uvicorn 命令时遇到错误。
python -m uvicorn
我运行遇到了同样的问题。 我正在使用 pyenv-win 来管理 Python 个版本。
以下命令成功解决了问题
$ pyenv rehash
1.First知道uvicorn所在的位置。你可以通过输入命令
知道这一点$locate uvicorn
现在,select看起来像
的路径/home/username/.local/bin/uvicorn
2.Then,键入命令
$ls -a
在这里,您可以看到一个名为.bashrc
和.bash_profile的隐藏文件。现在,我们必须在 .bashrc
文件或 .bash_profile 中添加我们的 uvicorn 路径。为此,我们使用 nano 文本编辑器并在 .bashrc
中写入以下内容并保存
$nano .bashrc
export PATH:$PATH:/home/username/.local/bin
我最近安装了 fastapi、uvicorn 并尝试 运行
uvicorn main:app --reload
我正在使用 zsh
(shell 类型无关紧要)和 pyenv
用于虚拟环境
遇到同样的麻烦(zsh:未找到 uvicorn 命令)
对我有用的解决方案
python -m uvicorn main:app --reload
为什么有效
这是因为当我们安装 uvicorn 时,它会安装一些系统二进制文件,我们可能必须将这些二进制文件添加到终端才能捕获的路径中
否则,我们需要通过python
让终端知道二进制文件此问题的一个非常常见的原因是 uvicorn 服务器不是 运行 来自 root。执行以下步骤来解决此问题:
- 使用命令以 root 用户身份登录:
sudo -i
- 导航到您的虚拟环境位置并激活它
- 现在重启 uvicorn 服务器
sudo pip install
和 pip install
可能在两个不同的位置。