Django没有在heroku上运行

时间:2012-01-19 10:55:36

标签: django heroku

遵循“在heroku / ceadar上开始使用Django”这封信的指南,最终成功解决了部署应用程序的一些问题

Successfully installed django psycopg2
 Cleaning up...
 Discovering process types
 Procfile declares types -> (none)
 Compiled slug size is 8.0MB
 Launching... done, v4
 http://<watever>.herokuapp.com deployed to Heroku

指南说网络服务器应该启动。但是heroku ps显示没有进程,显然页面没有加载。

heroku日志的尾巴:

2012-01-19T10:28:29+00:00 heroku[web.1]: State changed from created to down
2012-01-19T10:28:30+00:00 heroku[web.1]: State changed from down to created
2012-01-19T10:28:32+00:00 heroku[slugc]: Slug compilation finished
2012-01-19T10:30:32+00:00 heroku[router]: Error H99 (Platform error) -> GET <watever>
.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=


(venv) C:\Python27\facebook\venv\myapp>heroku ps
Process  State  Command
-------  -----  -------

我应该明确启动网络服务器吗?我在做错了吗?

5 个答案:

答案 0 :(得分:9)

我用于django / heroku实例的Procfile如下所示:

web: python hellodjango/manage.py runserver "0.0.0.0:$PORT" 

正如已经提到的,如果你没有Procfile并且你正在使用默认的网络服务器,它基本上会做上面的事情 - 但是尝试明确。您可以尝试从heroku控制台运行它,以查看它获得的错误(如果有):

heroku run python hellodjango/manage.py runserver

答案 1 :(得分:3)

我遇到了同样的问题,虽然我不知道是否出于同样的原因。

从教程执行此命令时:

django-admin.py startproject hellodjango。

我将应用程序的名称更改为其他名称(当然不仅仅是在此命令中),但我省略了&#39;。&#39;在末尾。这导致脚本在同名目录中创建一个应用程序,而不是在我所在的目录中,这导致Heroku的服务器端脚本无法将应用程序检测为Django应用程序。

答案 2 :(得分:3)

我也遇到了这个问题。通过运行...

确保您的Procfile看起来正确
$heroku run bash

打开一个可以访问heroku的终端。然后......

$cat Procfile

这将显示Procfile中的实际内容。我的第一行(在我的本地文件中)由于某种原因没有被阅读。然后,我的文件附加了一个“}”。我在Mac上的TextEdit中创建我的文件 - 应该使用SublimeText或其他文本编辑器。你也可以打电话

$echo "web: gunicorn hello:app" >> Procfile

或者你想要你的Procfile说什么。这会将您的Procfile更改为您回显的任何内容。

答案 3 :(得分:1)

我已经在Heroku上与Django挣扎了一段时间,并决定整合一个非常固执但功能正常的引导程序。我希望它可以帮助其他人:https://github.com/callmephilip/django-heroku-bootstrap

答案 4 :(得分:0)

关键在于:

Procfile declares types -> (none)

Heroku不知道如何运行您的应用程序。我认为python hellodjango/manage.py runserver适合你本地?如果是这样,Heroku应该可以选择这个。

同时检查您的repo根目录中是否有requirements.txt,以及您的某个项目子目录中有settings.py