在Heroku上部署现有的Django应用程序

12

我按照Heroku的教程操作,但我已经创建了一个相当复杂的Django应用程序,想要上传它。我将其复制到一个新文件夹中,并成功使用 git init 命令进行了初始化,还将文件添加到了提交中。然后我执行了 heroku create --stack cedar 命令,以便获取一个网站,接着执行了 git push heroku master 命令。但我得到了以下错误提示:

Counting objects: 6756, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5779/5779), done.
Writing objects: 100% (6756/6756), 6.98 MiB | 953 KiB/s, done.
Total 6756 (delta 2210), reused 0 (delta 0)

-----> Heroku receiving push
-----> Removing .DS_Store files
-----> Python app detected
 !     Django app must be in a package subdirectory
 !     Heroku push rejected, failed to compile Python app

To git@heroku.com:sitename.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:sitename.git'

在Heroku文件夹中,我有我的init、设置、管理和urls.py文件,然后我有文件夹OmniCloud_App,其中包含该特定应用程序的管理员、模型、Templates(文件夹)、静态(文件夹)、测试、urls和视图。为什么Heroku无法识别这个应用程序?


Chris,感谢你向我展示Heroku现在支持Django!不久前我特别寻找了Heroku的替代方案...这太棒了/我会关注的。 - Yuji 'Tomita' Tomita
2个回答

19

Chris,

对于Django项目在Heroku环境下,你需要检查Django项目所在的目录(该目录应与你的requirements.txt文件处于同一级别)。一个ls命令可能会显示类似以下内容:

$ ls
requirements.txt appfolder
$ ls appfolder
__init__.py   manage.py   settings.py    urls.py

这应该允许您部署现有的应用程序,然后根据需要配置您的Procfile。


1
我尝试了这个命令 ls Heroku,结果如下: requirements.txt 和 Django_App ls Django_App 的结果是: manage.py、settings.py、OmniCloud_App 等等。 而 OmniCloud_App 包含了特定的 views、urls、models 等等。但是还是没有成功(出现了相同的错误)。 - Chris
7
如果其他人遇到这个问题,我也曾收到“未检测到支持 Cedar 的应用程序”的错误。原来是我忘记将 requirements.txt 添加到提交中了。 - tronbabylove

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接