跳转到主要内容

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 (9.9 kB 查看散列)

上传时间

支持者