在 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 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
运行“工头启动”/将 Django 应用程序部署到 Heroku 时出现问题