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 |