2

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

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

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

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

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

4

1 回答 1

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

于 2012-01-17T07:23:24.357 回答