【问题标题】:why gunicorn command not found with gunicorn installed?为什么安装了 gunicorn 时找不到 gunicorn 命令?
【发布时间】:2015-04-16 15:54:07
【问题描述】:

我已经安装了 gunicorn,但是没有找到 gunicorn 命令:

# pip3.4 install gunicorn
Requirement already satisfied (use --upgrade to upgrade): gunicorn in /usr/local/python3.4/lib/python3.4/site-packages

# gunicorn
-bash: gunicorn: command not found

什么问题,系统无法识别gunicorn安装路径?

【问题讨论】:

  • 我想你已经将它安装到系统和一个venv。使用 locate 查找 gunicorn 二进制文件并确保该目录在您的 PATH 内。
  • 我没有使用venv,gunicorn不在我的系统路径中,我在系统路径中创建了一个gunicorn并输入了一些代码,然后它工作了,但为什么它不自动包含在路径中?跨度>
  • 我不是 100% 确定。您使用的是什么操作系统?
  • 生产服务器centos 6.5 x64,这有点奇怪,我的开发环境是虚拟机,与我的生产服务器相同的操作系统
  • 路径可能有问题。我会检查它

标签: django gunicorn


【解决方案1】:

我遇到了同样的问题,结果我不得不将 gunicorn 二进制路径添加到 Linux PATH 变量。您可以首先回显 $PATH 以查看系统上列出的所有二进制路径。然后找出gunicorn的安装位置。就我而言,我使用的是 python 虚拟环境和 pyenv,它们分别帮助管理多个 python 版本和依赖项。

(venv3.6) dave@daverig (develop)✗ % pip show gunicorn
Name: gunicorn
Version: 19.7.1
Summary: WSGI HTTP Server for UNIX
Home-page: http://gunicorn.org
Author: Benoit Chesneau
Author-email: benoitc@e-engura.com
License: MIT
Location: /home/dave/.pyenv/versions/3.6.2/envs/venv3.6/lib/python3.6/site-packages

注意 gunicorn 安装在 /home/dave/.pyenv/versions/3.6.2/envs/venv3.6/lib/python3.6/site-packages 中,并且此特定 python 版本的二进制文件的相应路径在 /home/dave/.pyenv/versions/3.6.2/envs/venv3.6/bin。所以我不得不像这样通过~/.profile文件将它添加到Linux路径;

export PATH=$PATH:$HOME/.pyenv/versions/3.6.2/envs/venv3.6/bin 然后你当然想使用source ~/.profile 刷新它或重新启动你的终端。一旦我能够做到这一点,gunicorn 二进制文件现在就可以在我的控制台上使用;

(venv3.6) dave@daverig (develop)✗ % gunicorn --version
gunicorn (version 19.7.1)

【讨论】:

  • 如何在已部署的 Google App Engine 实例中执行此操作?我问是因为在本地,docker 容器的路径上确实有 gunicorn
【解决方案2】:

我在 Debian 上遇到了同样的问题。

事实证明,在 Debian 上,documentation 建议通过 apt 安装 gunicorn:

$ sudo apt install gunicorn

【讨论】:

  • sudo apt install gunicorn3 如果你使用的是 Python3
  • 还有这个和python3-gunicorn的区别?
【解决方案3】:

我刚刚创建了一个名为 gunicorn 的文件并在下面输入了与我的开发服务器相同的代码,并将其包含在系统路径中,例如/usr/bin

#!/usr/local/bin/python3.4

#-*- coding: utf-8 -*-
import re
import sys

from gunicorn.app.wsgiapp import run


if __name__ == '__main__':
        sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$','',sys.argv[0])
        sys.exit(run())

通过这种方式,它解决了我的问题,但仍然让我感到困惑,为什么 gunicorn 命令没有自动生成并包含到系统路径中?为什么我的开发服务器这样做,都是相同的操作系统(centos 6.5 x64)

【讨论】:

  • 这也发生在我身上,在 OS X 上使用 Python 3 的框架版本。感谢分享脚本!
【解决方案4】:

安装 gunicorn from source 在尝试 2 小时后救了我!

pip3 install git+https://github.com/benoitc/gunicorn.git

【讨论】:

    【解决方案5】:

    如果你从编译的源代码安装 python3,你应该导出你的 python3 PATH:

    export PATH=$PATH:/usr/local/python3/bin
    

    【讨论】:

      【解决方案6】:

      转到终端并将目录更改为环境,然后键入以下命令。

      pip install gunicorn
      

      #享受1

      【讨论】:

      • 为什么这个答案被降级了?如果 OP 试图在他/她的环境中安装 gunicorn,则有效。
      猜你喜欢
      • 2015-05-12
      • 2018-12-09
      • 2020-05-24
      • 2020-09-01
      • 2018-02-10
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      相关资源
      最近更新 更多