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

Posted

技术标签:

【中文标题】在 Heroku 上部署现有的 Django 应用程序【英文标题】:Deploying existing Django app on Heroku 【发布时间】:2011-12-19 23:13:28 【问题描述】:

按照 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,其中包含特定应用程序的管理员、模型、模板(文件夹)、静态(文件夹)、测试、url 和视图。为什么 Heroku 无法识别应用程序?

【问题讨论】:

Chris,感谢您向我展示 Heroku 现在支持 django!不久前,我专门寻找了 heroku 替代品……这很棒/会看。 【参考方案1】:

克里斯,

特别是对于 Django,heroku 希望您检查您的 Django 项目所在的目录(该目录应该与您的 requirements.txt 处于同一级别)。 ls 可能类似于:

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

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

【讨论】:

我试过这个,所以ls Heroku 会产生:requirements.txt 和 Django_App ls Django_App 会产生:manage.py、settings.py OmniCloud_App 等,而 OmniCloud_App 包含特定的视图、url、模型等等。仍然没有运气(同样的错误) 对于可能遇到此问题的任何其他人,我也收到“未检测到雪松支持的应用程序”错误。原来我忘记将我的 requirements.txt 添加到提交中。【参考方案2】:

我在这里部署了一个示例 Django 应用程序到 Heroku: https://github.com/synedra/django-linkedin-simple

我在这里有一篇关于将此系统部署到 heroku 的博客文章: http://www.princesspolymath.com/princess_polymath/?p=511

请注意,我的帖子更多是关于让身份验证正常工作。 Heroku Django 教程本身(链接自我的博客文章)应该绰绰有余。您可能会经历这些,然后看看您的设置有何不同。

【讨论】:

以上是关于在 Heroku 上部署现有的 Django 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在Heroku上部署Django应用程序:错误[R10]

在heroku上部署django网站时出错

运行“工头启动”/将 Django 应用程序部署到 Heroku 时出现问题

在 Heroku 上部署 asgi 和 wsgi

PySFTP失败,“在部署Django / Heroku时出现”找不到主机X的主机密钥”

heroku中的django应用程序出现工作超时错误