使用Django在Heroku上部署多个项目

时间:2011-12-31 17:30:08

标签: django heroku virtualenv cedar

我想将两个单独的Django应用程序部署到Heroku。两个具有两个独立域名的应用程序,它们在逻辑上彼此不同。我设置了一个包含所有Python / Django内容的venv。现在,我可以创建另一个应用程序,复制另一个项目中的所有Python / Django内容。但是,有没有办法使用相同的venv?

我的文件结构目前看起来像这样

django
-.git
-projectname_1
-venv
.gitignore
requirements.txt

当我尝试在django下添加projectname_2时,我收到错误提示Django app must be in a package subdirectory

是否有正确的方法使用相同的venv添加第二个应用程序?

1 个答案:

答案 0 :(得分:1)

当您的项目不符合Heroku的Django项目规范时,会发生此错误。

具体来说,当Heroku在〜/ your_app_name / settings.py中找不到设置文件并因此认为它是非Django Python应用程序时,会发生该特定错误。但是它确实在您的项目根目录中找到了settings.py和manage.py(〜/)。

抛出此错误的特定Heroku源代码是: https://github.com/heroku/heroku-buildpack-python/blob/master/bin/compile

您的目录应如下所示:

~/.gitignore
~/Procfile
~/requirements.txt
~/your_app_name/
~/your_app_name/manage.py
~/your_app_name/settings.py
~/your_app_name/etc...

你最好的选择是使用两个独立的Heroku应用程序。 Heroku对您正在部署的应用程序类型做出了一些假设,并不一定考虑多个应用程序。

此外,最好不要检查你的virtualenv。只需确保所有依赖项都在requirements.txt中定义,Heroku会自动将它们安装在新的virtualenv中。