Django的Buildout配方
项目描述
isotoma.recipe.django可以用来安装Django。它与djangorecipe非常相似,只是将Django当作一个合适的egg处理。
此配方将在您的bin/目录中提供三个脚本(假设未设置control-script选项)
- bin/django
此脚本与任何典型django项目中找到的manage.py脚本完全相同;例如,您可以运行“bin/django syncdb”。
- bin/django-admin
本脚本等同于使用 apt 或 easy_install 安装 django 时可用的项目无关的 django-admin 脚本。
- bin/django.wsgi
一个可选的脚本,如果将 wsgi 选项设置为“true”,则会创建此脚本。此脚本设计为由 Web 服务器调用。
整个配方假设您的项目是一个 egg,并且您项目中的任何应用程序 不需要 在 sys.path 上,因此它们相互引用
from yourproject.yourapp import models
示例
[buildout] parts = django versions = versions eggs = foo django-treebeard [django] recipe = isotoma.recipe.django project = foo settings = production wsgi = true eggs = ${buildout:eggs} [versions] Django = 1.3.1
支持选项
- project
您的 django 项目的名称,无论是开发 egg 还是普通 egg。请注意,isotoma.recipe.django 不会 为您创建项目,如果它不存在。
- settings
要使用的设置文件 在您的项目内部 的名称,允许您创建一个包含开发设置的 settings.py 文件,以及一个 production.py 文件,该文件导入开发设置并在必要时覆盖它们。这样,您只需将此值从“settings”更改为“production”。默认为“settings”。
- extra-paths
要添加到 sys.path 的任何额外路径,这些路径应可供您的项目 egg / develop-egg 使用。
- wsgi
默认为 false。如果为‘true’,则创建一个 bin/django.wsgi 脚本,可以将其添加到 Web 服务器配置中(例如使用 isotoma.recipe.apache - 见下文)。
- bin-on-path
此功能将构建 out bin/ 目录追加到 os.environ[‘PATH’],以便您的 django 项目可以访问构建 out 可执行文件。例如,如果您在构建 out 构建中安装了 sphinx 并希望从 django 内部访问 sphinx 可执行文件(如 readthedocs.org 项目中那样),这可能很有用。
- environment.foo
例如
environment.celery = "django"
用于使更多环境变量可供您的 django 项目使用。可以在“environment.”之后添加任何值。上面的示例添加
os.environ["celery"] = "django"
到 django 管理脚本中。
- control-script
主管理脚本的名称。默认为“django”,因此如果您的 buildout:bin-directory = “bin”(默认情况),则您的管理脚本将位于“bin/django”,而您的 wsgi 脚本将位于“bin/django.wsgi”。
- eggs
您希望提供给 django 项目的 eggs。
- extra-settings
提供一组额外的设置,以覆盖项目中 django 的设置,例如。
extra-settings = DATABASES['default']['USER'] = 'username' DATABASES['default']['PASSWORD'] = 'password'
由项目设置和额外设置组成的设置文件将部分编译,添加到 sys.path,然后设置为您 bin 目录中生成的控制脚本中的 django 设置环境变量。
Bugs
该项目正在积极维护,并且可以在此处报告错误:https://github.com/isotoma/isotoma.recipe.django/issues
使用 isotoma.recipe.apache 的示例
此示例显示了如何
isotoma.recipe.django,
可以组合起来创建 wsgi 脚本和可以运行该脚本的 apache 配置。生成的 apache 配置只需链接到 /etc/apache2/sites-available 即可。
[buildout] parts = django apache versions = versions eggs = foo django-treebeard [django] recipe = isotoma.recipe.django project = foo settings = production wsgi = true eggs = ${buildout:eggs} [eggpaths] recipe = isotoma.recipe.eggpaths eggs = Django foo [facts] recipe = isotoma.recipe.facts [apache] recipe = isotoma.recipe.apache:wsgi interface = ${facts:interface.eth0.address} sitename = example.com serveradmin = webmaster@example.com daemon = True user = ${facts:user.name} group = ${:user} processgroup = ${django:project} processes = 5 threads = 10 wsgi = django.wsgi static_aliases = /admin/media:${eggpaths:Django}/django/contrib/admin/media /static:${eggpaths:foo}/foo/static /media:${buildout:directory}/var/media [versions] Django = 1.3.1
更改
3.1.5 (2011-12-08)
添加了 extra-settings 选项,以将构建 out 配置中的设置行注入。
3.1.4 (2011-10-25)
修复了防止更新 django 脚本工作集的漏洞。
3.1.3 (2011-10-13)
发布文档 - 充实了 README 文档。
3.1.2 (2011-10-06)
Buildout 现在在必要时清理 django 脚本。
配方不再依赖于 Jinja2。
在配方中添加了构建 out 配置和空项目作为快速脏的配方测试。
现在可以将环境变量添加到 bin/django(.*) 脚本中,例如,添加 os.environ[‘CELERY_LOADER’] = ‘django’。
3.1.1 (2011-09-18)
在依赖关系中正确大写 Jinja2,以便可以正确固定。
添加了新选项:“bin-on-path”,如果为 true,则将在每个 django 脚本中将构建 out bin 目录添加到 os.environ[‘PATH’] 中。
3.1.0 (2011-09-14)
由于一个使用离线模式下工作集的bug,鸡蛋从未被安装。现在我们继承了zc.recipe.egg.Egg,它为我们提供了一个标准的working_set方法来正确地确定工作集。
3.0.3 (2011-09-14)
修复了extra-paths bug,其中空白extra-paths选项会将当前目录添加进去。
使配方符合PEP-8规范。
3.0.2 (2011-06-30)
将应用添加到设置中的已安装应用。
创建一个可以运行创建的应用的测试运行器。
为应用创建一个初始的setup.py。
创建一个urls.py,包含合理的默认设置,包括在调试模式下提供静态文件。
创建一个settings.py和production.py层次结构,以启用设置覆盖。
可以从特定的URL下载django。
在bin/django*脚本中添加了extra-paths选项,用于将路径追加到sys.path。
2.0.0
从头开始重写,使用django egg,而不是下载tarball。这移除了使用SVN trunk的能力。
1.2.3
添加了server_email buildout设置。将在settings.py中设置SERVER_EMAIL,以便服务器可以正确发送电子邮件。
1.2.2
为预发布环境部署添加了staging.py的创建。
项目路径现在被正确添加到buildout中。
1.2.1
更新了文档。
1.0
从djangorecipe分叉,并重命名为isotoma.recipe.django。
0.20
配方现在使setuptools在安装期间知道django包。这解决了#397864。感谢Daniel Bruce和Dan Fairs的补丁。
修复了#451065,该补丁解决了WSGI日志文件选项的问题。
添加了更多与FCGI相关的设置配置的可能性。感谢Vasily Sulatskov的补丁。
0.19.2
当选项更改时,现在会正确删除生成的WSGI & FCGI脚本(修复了#328182)。感谢Horst Gutmann的补丁。
当依赖项更改时,现在会更新脚本。这解决了#44658,感谢Paul Carduner的补丁。
0.19.1
应用了WSGI脚本生成更改的修复。上一个版本无法正常工作。
0.19
再次以非最新版运行时,配方将不再更新Subversion签出。感谢vinilios的补丁。
现在使用Buildout的自身系统生成WSGI和FCGI脚本,这使得它们在路径设置方面与生成的manage脚本更相似。感谢Jannis Leidel的补丁。
0.18
来自egg和extra-paths的路径现在比默认系统路径具有优先权(修复了#370420)。感谢Horst Gutmann的补丁。
生成的WSGI脚本现在如果存在,将使用python选项。这解决了#361695。
0.17.4
修复了非详细模式下运行的问题(修复了#375151)。
0.17.3
移除了对setuptools_bzr的依赖,因为它似乎没有按预期工作。
0.17.2
将下载代码更改为使用urllib2。这应该可以在代理后面工作(修复了#362822)。感谢pauld的补丁。
0.17.1
修复了新的WSGI日志选项#348797的问题。感谢Bertrand Mathieu的补丁。
如果没有设置“wsgilog”,则禁用WSGI日志的生成,感谢Jacob Kaplan-Moss的补丁。
更新了buildout.cfg和.bzrignore,感谢Jacob Kaplan-Moss。
0.17
添加了指定WSGI脚本输出重定向日志文件的选项。感谢Guido Wesdorp的补丁。
0.16
现在支持Subversion别名(例如svn+mystuff://myjunk)。感谢Remco的补丁。
0.15.2
更新将pth文件查找器从__init__方法移动到install方法,以便它在buildout顺序中运行,否则它会在可能尚未存在的目录中查找pth文件。感谢Chris Shenton对其原始补丁的更新。
0.15.1
更新使之前添加的pth-files选项有更好的文档。
0.15
添加了“pth-files”选项,从site .pth文件将库添加到extra-paths。感谢Chris Shenton的补丁。
0.14
配方现在支持创建FCGI脚本。感谢Jannis Leidel的补丁。
首次下载Django配方时,配方现在会正确报告其下载的URL。
0.13
现在在subversion URL中指定用户名是可行的。确定修订版本的代码已经更新。这修复了问题#274004。感谢Remco提供的补丁。
更新了创建新项目的模板。现在它使用当前的管理系统来生成其urls.py文件。这修复了问题#276255。感谢Roland提供的补丁。
0.12.1
由于缺少CHANGES.txt,重新上传。
0.12
配方不再执行subversion以确定是否使用subversion下载版本。这修复了问题#271145。感谢Kapil Thangavelu提供的补丁。
将pythonpath选项更改为extra-paths。这使得配方与其他配方更一致(参见问题#270908)。
0.11
通过确保始终调用更新方法,再次尝试修复更新问题(#250811)。在先前的版本中,配方会将随机的密钥(如果没有指定)写入选项以供模板使用。Buildout将其视为选项更改,因此总是决定卸载并安装。
当指定projectegg和wsgi=True时,生成的wsgi文件中未包含正确的设置文件。这已经通过Dan Fairs的补丁得到修复。
配方现在具有日志记录功能。所有打印语句都已替换,并添加了一些额外的日志调用。这使得配方在执行长时间运行的任务时更具信息性。感谢erny提供的补丁,该补丁来自问题#260628。
0.10
配方不再期望发布tar包的顶级目录名称与版本号一致。这修复了问题#260097。感谢erny报告此问题和提出解决方案。
在重新运行buildout时,对于svn checkout的修订版本固定现在保持固定。这修复了问题#250811。感谢Remco报告此问题。
添加了一个选项,可以指定一个egg作为项目使用。这禁用了创建基本项目结构的代码。感谢Dan Fairs提供的补丁,该补丁来自问题#252647。
0.9.1
修复了由于缺少清单文件而损坏的上一个版本。
0.9
设置选项现在支持任意深度设置路径(例如:conf.customer.development)。
版本参数现在也接受完整的svn URL。您可以使用此功能获取分支或使用标准的svn @语法将任何URL固定到特定修订版本。
wsgi脚本不再设置为可执行和仅由运行buildout的用户可读。这避免了部署中的问题。
项目详情
isotoma.recipe.django-3.1.5.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | d427e3d5ff4cacd1b1743017c42a32bf6708774e29195a10d09d80a169a91a0f |
|
MD5 | b036167c40061dea0f16117057457c1f |
|
BLAKE2b-256 | c2173a6ede84efb6d2a158129468bc28948585eebcd4d02a9a56806299348f1b |