繁体   English   中英

Python,烧瓶:Heroku无法打开(并运行)应用程序

[英]Python, Flask: Heroku can not open (and run) app

我有一个用Cloud9 IDE编写的Flask应用程序。 我在终端中使用“ python manage.py runserver”在本地运行。 然后触发:

manager.add_command('runserver', Server(
    use_debugger = True,
    use_reloader = True,
    host = os.getenv('IP', '0.0.0.0'),
    port = int(os.getenv('PORT', 5000))
    )
)

这段代码位于manage.py文件中。

现在我想用Heroku运行它。 我完全遵循了他们的教程。 我只是不知道我的Procfile应该是什么。 我这样写:

web: gunicorn manage:runserver

推送git等似乎一切正常。 当我输入:“ heroku ps:scale web = 1”时,我在终端中得到了这个:

Scaling dynos... done, now running web at 1:Free.

当我输入“ Heroku open”时,出现此错误:

Opening fierce-spire-3069... xprop:  unable to open display ''
 xprop:  unable to open display ''
/usr/bin/xdg-open: 461: /usr/bin/xdg-open: links2: not found
/usr/bin/xdg-open: 461: /usr/bin/xdg-open: links: not found
/usr/bin/xdg-open: 461: /usr/bin/xdg-open: lynx: not found
/usr/bin/xdg-open: 461: /usr/bin/xdg-open: w3m: not found
 xdg-open: no method available for opening 'https://fierce-spire-3069.herokuapp.com/'
 done

因此,无法打开我的应用程序。当我在Heroku网站上打开它时,出现错误消息。 这是我在日志中找到的:

2015-12-29T20:15:06.399443+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=fierce-spire-3069.herokuapp.com request_id=c5d76e45-5d56-45f4-a2bc-75bd7fc08b7f fwd="81.82.128.183" dyno= connect= service= status=503 bytes=

我究竟做错了什么?

编辑

我将个人资料更改为此:

web: python manage.py runserver "0.0.0.0:5000"

Heroku日志中的上述错误消息已消失,但是有一个新消息:

2015-12-29T21:30:37.938957+00:00 app[web.1]:     from tsb import app
2015-12-29T21:30:37.938955+00:00 app[web.1]:   File "manage.py", line 7, in <module>
2015-12-29T21:30:37.939002+00:00 app[web.1]: ImportError: No module named tsb

这是指manage.py代码的这一部分:

from tsb import app

“ tsb”是存储我所有项目文件的文件夹,它是项目文件夹。 为什么无法导入呢?

您没有正确使用Gunicorn。 基本用法

$ gunicorn [OPTIONS] APP_MODULE

这是您需要在Procfile使用的。

web: gunicorn [OPTIONS] APP_MODULE

我无法告诉您要使用哪些选项。 您可以在Heroku的gunicorn文档中找到它。 这里重要的是APP_MODULE

看来您的应用程序实例是通过manage.py公开的,所以您想使用

web: gunicorn manage

但是,如果尝试此操作,则可能会失败。 默认情况下,gunicorn将在APP_MODULE内查找名为application东西。 您的应用程序似乎被命名为manager 那意味着你需要

web: gunicorn manage:manager

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM