首先在heroku推django

时间:2013-08-30 01:30:23

标签: django heroku push

我正在尝试在heroku中推送我的django应用程序,并且我已经按照heroku页面教程中的所有说明进行操作,但是当我尝试执行推送时,我得到了这个:

christian@christian-R480-R431-R481:~/Documentos/heroku/Portafolio6$ sudo git push heroku master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 542 bytes, done.
Total 5 (delta 0), reused 0 (delta 0)


 !     Push rejected, no Cedar-supported app detected

To git@heroku.com:mysterious-thicket-1865.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:mysterious-thicket-1865.git'
christian@christian-R480-R431-R481:~/Documentos/heroku/Portafolio6$ 

我不知道为什么会这样。我是否必须在django项目中进行推送,或者当我拥有virtualenv文件夹时?

2 个答案:

答案 0 :(得分:0)

你有一个有效的requirements.txt文件吗? Heroku需要此文件来安装应用程序使用的相关python包。

要自动生成此文件,只需运行以下代码:

pip freeze > requirements.txt

requirements.txt文件应位于应用程序旁边的最顶层。

http://www.deploydjango.com/django_project_structure/上的“第3步 - Heroku最佳实践”部分将为您提供更多信息。

答案 1 :(得分:0)

检查目录中是否有requirements.txt,Procfile和runtime.txt文件。

要生成requirements.txt,请激活virtualenv并冻结已安装的软件包:

workon my_project
pip freeze > requirements.txt

您的Procfile负责告诉heroku系统如何运行您的应用程序(并且很可能是此实例中缺少的内容)。这是一个示例:

web: gunicorn my_project.wsgi -b 0.0.0.0:$PORT

您的runtime.txt文件负责确定要运行的python版本:

python-2.7.4

确保所有三个文件都存在(技术上,runtime.txt是可选的,但这是一个好主意),提交然后再次尝试推送。