Zope3 paste部署设置配方
项目描述
z3c.recipe.paster:serve生成基于paste deploy的Zope 3设置的启动脚本和配置文件。paste deploy *.ini 文件内容可以在buildout.cfg文件中定义。
注意,您必须在项目的setup.py文件中定义一个entry_point,才能通过部分名称使用application_factory。
详细文档
z3c.recipe.paster:serve
这个Zope 3配方提供了一个针对Zope3项目的Paste Deploy设置。它需要在buoldout.cfg中定义一个Paste Deploy .ini文件。如果您需要一个简单的PasteScript设置,可以使用z3c.recipe.paster:paster配方,该配方允许运行现有的.ini文件。
选项
‘serve’配方接受以下选项
- eggs
一个或多个egg的名称,以及它们应该包含在生成的脚本Python路径中的依赖项。
- ini
paste deploy *.ini 文件内容。
- zope.conf
定义在WSGI应用中使用的数据库和错误日志部分的zope.conf文件。
- site.zcml
zope应用使用的zope site.zcml文件。
测试
让我们定义一个(虚假的)egg,我们可以在我们的应用程序中使用
>>> mkdir('demo') >>> write('demo', 'setup.py', ... ''' ... from setuptools import setup ... setup(name = 'demo') ... ''')
现在检查设置是否正确
>>> ls('bin') - buildout
我们将创建一个 buildout.cfg 文件,用于定义我们的 paster serve 配置
>>> write('buildout.cfg', ... ''' ... [buildout] ... develop = demo ... parts = var myapp ... ... [var] ... recipe = zc.recipe.filestorage ... ... [myapp] ... eggs = demo ... recipe = z3c.recipe.paster:serve ... ini = ... [app:main] ... use = egg:demo ... ... [server:main] ... use = egg:Paste#http ... host = 127.0.0.1 ... port = 8080 ... ... zope.conf = ... ... ${var:zconfig} ... ... <eventlog> ... <logfile> ... formatter zope.exceptions.log.Formatter ... path ${buildout:directory}/parts/myapp/error.log ... </logfile> ... <logfile> ... formatter zope.exceptions.log.Formatter ... path STDOUT ... </logfile> ... </eventlog> ... ... devmode on ... ... site.zcml = ... <!-- inlcude other zcml files like principals.zcml or securitypolicy.zcml ... and your app configuration --> ... <include package="demo" file="app.zcml" /> ... ... ''' % globals())
现在,让我们运行 buildout 并看看我们得到了什么
>>> print system(join('bin', 'buildout')), Develop: '/sample-buildout/demo' Installing var. Installing myapp. Generated script '/sample-buildout/bin/myapp'.
bin 文件夹包含为我们新创建的 paste 部署服务器提供的脚本
>>> ls('bin') - buildout - myapp
检查我们新生成的 myapp 脚本的内容。正如您所看到的,生成的脚本使用 paste.script.command.run 来启动我们的服务器
>>> cat('bin', 'myapp') #!"C:\Python24\python.exe" <BLANKLINE> import sys sys.path[0:0] = [ '/sample-buildout/demo', '/sample-pyN.N.egg', ... '/sample-pyN.N.egg', ] <BLANKLINE> import os sys.argv[0] = os.path.abspath(sys.argv[0]) <BLANKLINE> <BLANKLINE> import paste.script.command <BLANKLINE> if __name__ == '__main__': paste.script.command.run([ 'serve', '...myapp.ini', ]+sys.argv[1:])
那些 sample-pyN.N.egg 行应该是 PasteScript 及其依赖项。
检查我们新生成的 myapp.ini 文件的内容
>>> cat('parts', 'myapp', 'myapp.ini') <BLANKLINE> [app:main] use = egg:demo [server:main] use = egg:Paste#http host = 127.0.0.1 port = 8080
入口点
正如您可能知道的,在启动过程中有一些魔法发生。上面 myapp.ini 文件中的 app:main 部分必须在您的项目 setup.py 文件中定义为 entry_point。如果没有它们,app:main 就不可用。您可以使用来自 z3c.recipe.paster.wsgi 包的默认 application_factory 来定义这样的 app:main 入口点。当然,如果您需要将一些额外的配置传递给您的应用程序,您可以在自定义 *.ini 文件中定义自己的应用程序工厂。
z3c.recipe.paster 提供的默认 entry_point 可以包含在您的自定义 setup.py 文件中,如下所示
setup( name = 'something', version = '0.5.0dev', ... include_package_data = True, package_dir = {'':'src'}, namespace_packages = [], install_requires = [ 'some.package', ], entry_points = """ [paste.app_factory] main = z3c.recipe.paster.wsgi:application_factory """, )
z3c.recipe.paster:paster
这个 Zope 3 菜单提供了 Zope3 项目的 Paste Deploy 脚本设置。
paster 部分允许我们设置一个纯 paster 可执行文件,它可以用于启动 Zope 服务器,使用 paste 部署的 ".ini" 文件,例如:bin/paster serve app.ini。此菜单继承自 zc.recipe.egg 类,将在您的 egg 依赖项中设置 paster。您要做的只是定义您的 eggs。与内置的 PasteScript 相比,此菜谱的好处是如果您需要多个 paster 脚本,可以选择另一个名称。如果您在一个 buildout 配置中具有具有不同 egg 依赖项的 paster,则需要这样做。
选项
‘serve’配方接受以下选项
- eggs
一个或多个egg的名称,以及它们应该包含在生成的脚本Python路径中的依赖项。
- ini
paste deploy *.ini 文件内容。
- zope.conf
定义在WSGI应用中使用的数据库和错误日志部分的zope.conf文件。
- site.zcml
zope应用使用的zope site.zcml文件。
测试
让我们定义一个(虚假的)egg,我们可以在我们的应用程序中使用
>>> mkdir('sample') >>> write('sample', 'setup.py', ... ''' ... from setuptools import setup ... setup(name = 'sample') ... ''')
现在检查设置是否正确
>>> ls('bin') - buildout-script.py - buildout.exe
我们将创建一个 buildout.cfg 文件,用于定义我们的 paster 配置
>>> write('buildout.cfg', ... ''' ... [buildout] ... develop = sample ... parts = mypaster ... ... [mypaster] ... recipe = z3c.recipe.paster:paster ... eggs = sample ... ... ''' % globals())>>> ls('bin') - buildout-script.py - buildout.exe
现在,让我们运行 buildout 并看看我们得到了什么
>>> print system(join('bin', 'buildout')), Develop: '/sample-buildout/sample' Installing mypaster. Generated script '/sample-buildout/bin/mypaster'.
现在检查设置是否正确
>>> ls('bin') - buildout-script.py - buildout.exe - mypaster-script.py - mypaster.exe
检查我们新生成的 paster 脚本的内容。正如您所看到的,生成的脚本使用 paste.script.command.run 来启动我们的服务器。此脚本是一般的,但使用我们的 eggs 路径并使用给定的名称
>>> cat('bin', 'mypaster') <BLANKLINE> import sys sys.path[0:0] = [ '/sample-buildout/sample', '/sample-pyN.N.egg', ... '/sample-pyN.N.egg', ] <BLANKLINE> import paste.script.command <BLANKLINE> if __name__ == '__main__': paste.script.command.run()
更改
0.5.3 (2010-02-08)
修复:如果不存在,则添加 z3c.recipe.paster egg 以进行调试,以确保已安装
0.5.2 (2010-01-28)
修复:如果不存在,则添加 PasteScript egg 以确保已安装
0.5.1 (2010-01-22)
添加了 debug,一个交互式调试提示。
修复了测试,并修复了测试设置中的所有 eggs。
修复了测试正常化器。
更新了测试,以便它们与当前包兼容。
修复了测试,以便它们在 Windows 类似和 Unix 类似的操作系统上运行。
0.5.0 (2009-02-22)
初始发布
项目详情
z3c.recipe.paster-0.5.3.tar.gz 的散列
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7419f3d2995578704e3f18f1fd0b1270d1759af6e04ba3473dd50672dbede6e8 |
|
MD5 | 3682134ee32bae395b2bf7484739ddab |
|
BLAKE2b-256 | 16f3baabd3ea1540c96d8bc1baec9528f5031eeb16bb1c8139cfbfcc3a41104b |