4

我开始尝试为 Django 使用 buildout。我想使用 buildout 作为部署项目和应用程序的主要安装方法。在这种情况下,每个应用程序都包含一个构建以及项目是最好的吗?您应该在什么级别应用构建?

谢谢,

托德

4

4 回答 4

4

我通常设置它的方式是这样的:

buildout_dir/
  + bootstrap.py
  + buildout.cfg
  + ...
  + <project_name>/
      + settings.py
      + templates/
      + media/
      + ...  

由于构建(在我的情况下)通常与单个项目相关联,因此我将直接将 django 项目存储在构建中。顺便说一句:我在构建配置中使用djangorecipe

我写的应用程序是简单的鸡蛋,有这样的布局:

django-<app_name>/
  + setup.py
  + <app_name>/
      + __init__.py
      + models.py
      + ...

但我也看到了自包含构建的应用程序。Jacob Kaplan-Moss 甚至写了一篇关于它的文章

于 2010-07-07T08:56:36.517 回答
1

对我来说,我给每个应用程序和每个项目一个扩展。该项目的扩建是为了设置站点。包含:

  • 生成一个 apache/nginx 配置文件(collective.recipe.template)

  • 也许是一个 cronjob

  • 如果你想运行一个单独的 gunicorn 左右,也许是主管。

每个应用程序也有一个扩展。这里的目标是使设置隔离环境变得容易,特别是用于测试。您永远不需要部署应用程序,您只需要对其进行足够的设置以运行开发服务器并运行测试。

对我来说,构建是隔离(如 virtualenv)加上安装(如 pip)加上项目自动化。您将主要将前两个用于应用程序。并且所有三个都用于该站点。

于 2012-04-05T18:42:37.280 回答
1

我总是为每个项目创建一个构建,以获取所有必需的依赖项。这可以是简单的鸡蛋,也可以是使用 mr.developer 的 git(hub) 的内部依赖项

我认为不需要针对每个应用进行构建。为每个 django 设置配置(例如开发、生产等)有一个匹配的 buildout.cfg 可能会很好

构建只是在项目文件夹中应用,将自动包含依赖项(并且在使用 mr.developer 时可自定义)。

另外,在我看来,包括 bootstrap.py 有点过时;我总是运行 virtualenv + pip install zc.buildout。这也可以在项目文件夹本身或外部完成(例如 ~/virtualenvs/myproject-123)

于 2013-01-29T11:10:04.487 回答
1

我总是在项目(网站)根目录下至少有两个/三个构建配置:

/
|- buildout.cfg    # contains bas configuration used by other cfg files
|- development.cfg # adds ton of eggs used only in development and generates manage script using djangorecipe 
|- production.cfg  # most of the time it contains versions and generates django script using djangorecipe
于 2012-04-03T21:08:53.523 回答