首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Heroku找不到gunicorn命令

Heroku找不到gunicorn命令
EN

Stack Overflow用户
提问于 2015-03-11 09:21:29
回答 3查看 11.7K关注 0票数 11

我正试着在Heroku上放一个小的Flask应用。当它启动时,它会从日志中给出以下消息:

代码语言:javascript
复制
2015-03-11T01:05:26.737788+00:00 heroku[web.1]: State changed from crashed to starting
2015-03-11T01:05:31.409851+00:00 heroku[web.1]: Starting process with command `gunicorn app:app`
2015-03-11T01:05:33.863601+00:00 app[web.1]: bash: gunicorn: command not found
2015-03-11T01:05:34.644419+00:00 heroku[web.1]: Process exited with status 127
2015-03-11T01:05:34.668264+00:00 heroku[web.1]: State changed from starting to crashed

我的配置文件是

代码语言:javascript
复制
web: gunicorn application:app

,而application.py是我想要运行的文件。我查找了这个问题,发现它有时是由requirements.txt中不存在的gunicorn引起的,但我的requirements.txt有它,并有这样一行代码:

代码语言:javascript
复制
gunicorn==19.3.0

。我试着跑步

代码语言:javascript
复制
heroku run pip install gunicorn

它告诉我它成功地安装了gunicorn 19.3.0。但是当我尝试在Heroku上使用

代码语言:javascript
复制
heroku run gunicorn

它给了我一个"bash: gunicorn: command not found“的消息。

EN

回答 3

Stack Overflow用户

发布于 2017-03-30 03:22:27

gunicorn添加到requirements.txt

为了追求12-factor应用程序,使用heroku run对文件系统所做的更改是ephemeral

票数 3
EN

Stack Overflow用户

发布于 2018-06-05 08:47:35

我遇到了同样的问题。

在做了一些研究后,我找到了这个tutorial,其中他们解释说,任何“本地”更改(如导入/使用新模块)都必须使用pipenv“安装”在heroku应用程序中。所以在这种情况下,我所做的是:

代码语言:javascript
复制
$ pipenv install gunicorn

这将在你的应用程序中“安装”requirements.txt,并在你的管道文件中添加一个条目(或者创建一个新的)管道文件,这是Heroku跟踪它需要为你的应用程序安装的依赖项的方式(我相信仍然支持使用gunicorn,但不是他们推荐的)。

然后,为了“激活”安装了gunicorn的pip环境,您必须运行:

代码语言:javascript
复制
$ pipenv shell

注意:您可以通过运行$ heroku local来测试它是否工作

代码语言:javascript
复制
$ heroku local
[WARN] No ENV file found
23:10:25 web.1   |  /bin/sh: gunicorn: command not found
23:10:25 web.1   Exited with exit code 127

激活pip环境后:

代码语言:javascript
复制
$ pipenv shell
Spawning environment shell (/bin/bash). Use 'exit' to leave.
. /Users/carlos/.local/share/virtualenvs/app-jKOcg6b1/bin/activate
bash-3.2$ . /Users/carlos/.local/share/virtualenvs/app-jKOcg6b1/bin/activate
(app-jKOcg6b1) bash-3.2$ heroku local
[WARN] No ENV file found
06:31:12 web.1   |  [2018-06-05 06:31:12 -0600] [28531] [INFO] Starting gunicorn 19.8.1
06:31:13 web.1   |  [2018-06-05 06:31:12 -0600] [28531] [INFO] Listening at: http://0.0.0.0:5000 (28531)
06:31:13 web.1   |  [2018-06-05 06:31:12 -0600] [28531] [INFO] Using worker: sync
06:31:13 web.1   |  [2018-06-05 06:31:12 -0600] [28535] [INFO] Booting worker with pid: 28535
票数 3
EN

Stack Overflow用户

发布于 2019-02-24 03:40:26

我在运行Ubuntu 18.04.2 LTS bionic时遇到了这个问题。解决方案是更新我的PATH变量!

在~/.profile中,我添加了以下几行:

代码语言:javascript
复制
if [ -d "$HOME/.local" ] ; then
    PATH="$HOME/.local:$PATH"
fi
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

我更改了"runtime.txt“以匹配我的Python3版本。我不确定是否有必要这样做,但现在它是python-3.6.7

另外,因为我安装了不同版本的python和pip,所以我在本地安装和运行的命令是:

代码语言:javascript
复制
python3 -m venv getting-started
pip3 install -r requirements.txt
python3 manage.py migrate #I had already created the database
python3 manage.py collectstatic
heroku local
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28977018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档