2011-12-31 79 views
1

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

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

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

当我试图添加projectname_2下的Django我收到错误消息Django app must be in a package subdirectory

是否有添加使用相同VENV第二应用的正确方法?

回答

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内。