我开始使用buildout for Django。我想使用buildout作为部署项目和应用程序的主要安装方法。在这种情况下,每个应用程序包含一个buildout以及项目是最好的吗?你应该在什么级别应用buildout?
谢谢,
托德
答案 0 :(得分:4)
我通常设置的方式是这样的:
buildout_dir/
+ bootstrap.py
+ buildout.cfg
+ ...
+ <project_name>/
+ settings.py
+ templates/
+ media/
+ ...
由于buildout(在我的情况下)经常与单个项目绑定,我只是将django项目直接存储在buildout中。顺便说一下:我在我的buildout配置中使用djangorecipe。
我写的应用程序是简单的鸡蛋,并且有这种布局:
django-<app_name>/
+ setup.py
+ <app_name>/
+ __init__.py
+ models.py
+ ...
但我也看到了自包含扩展的应用程序。 Jacob Kaplan-Moss甚至wrote an article about it。
答案 1 :(得分:1)
我总是在项目(网站)root上至少有两个/三个buildout配置:
/
|- 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
答案 2 :(得分:1)
对我而言,我为每个应用程序和每个项目提供了一个扩展。该项目的扩建是为了建立网站。包括:
生成apache / nginx配置文件(collective.recipe.template)
也许是一个cronjob
也许是主管,如果你想独立运行枪炮。
每个应用都有一个扩建。这里的目标是使设置隔离环境变得容易,特别是用于测试。您永远不需要部署应用程序,只需将其设置为足以运行开发服务器并运行测试。
对我来说,buildout是隔离(如virtualenv)加上安装(如pip)和项目自动化。您最常使用前两个应用程序。这三个都是网站。
答案 3 :(得分:1)
我总是为每个项目创建一个buildout来获取所有必需的依赖项。这可以是简单的鸡蛋,也可以是git(hub)使用mr.developer
的内部依赖我认为不需要进行每个应用程序的构建。为每个django设置配置(例如开发,生产等)配置匹配的buildout.cfg可能是件好事
buildout只是应用于项目文件夹,依赖项将自动包含(并在使用mr.developer时可自定义)。
另外,包括bootstrap.py在我看来有点老了;我总是运行virtualenv + pip install zc.buildout。这也可以在项目文件夹本身或外部完成(例如〜/ virtualenvs / myproject-123)