为App Engine开发构建的食谱。
项目描述
appfy.recipe.gae
appfy.recipe.gae 提供一系列 zc.buildout 食谱,以帮助进行 Google App Engine 开发。它受到 rod.recipe.appengine 的启发,但使用不同的布局并具有扩展的功能。它也被分为不同的食谱。目前 appfy.recipe.gae 有3个食谱
- appfy.recipe.gae:app_lib:
从PyPi下载库并将其安装到应用目录中。
- appfy.recipe.gae:sdk:
下载并安装App Engine SDK。
- appfy.recipe.gae:tools:
在构建目录中安装一个Python可执行文件和几个SDK脚本:appcfg、bulkload_client、bulkloader、dev_appserver 和 remote_api_shell。它还允许设置默认值以启动dev_appserver。
源代码和问题跟踪器可以在https://github.com/prmtl/appfy.recipe.gae找到。
有关appfy如何使App Engine应用分发变得简单和愉快的示例,请参阅Moe安装说明。
appfy.recipe.gae:app_lib
从PyPi下载库并将其安装在应用目录中。此配方扩展了zc.recipe.egg.Scripts,因此该配方中所有选项也都是有效的。
选项
- eggs:
要安装的包名。
- lib-directory:
库的目的地目录。默认为distlib。
- use-zipimport:
如果设置为true,则创建一个包含库的zip文件而不是目录。zip文件名将是lib-directory的值加上.zip。
- ignore-globs:
不从库中复制的glob模式列表。
- ignore-packages:
要忽略的顶级包名或模块列表。这对于忽略不会使用的依赖项很有用。一些包可能安装distribute,setuptools或pkg_resources,但在App Engine上它们并不非常有用,因此可以将它们设置为忽略,例如。
- delete-safe:
如果设置为true,则在构建时始终将lib-directory移动到parts目录内的临时目录作为备份,而不是删除它。这是为了避免如果lib-directory配置不当而意外删除。默认为true。
示例
[app_lib] # Sets the library dependencies for the app. recipe = appfy.recipe.gae:app_lib lib-directory = app/distlib use-zipimport = false # Define the libraries. eggs = tipfy # Don't copy files that match these glob patterns. ignore-globs = *.c *.pyc *.pyo */test */tests */testsuite */django */sqlalchemy # Don't install these packages or modules. ignore-packages = distribute setuptools easy_install site pkg_resources
appfy.recipe.gae:sdk
在buildout目录中下载和安装App Engine SDK。
选项
- url:
App Engine SDK文件的URL。默认是从storage.googleapis.com下载最新版本。
- destination:
提取SDK的目的地。默认为parts目录。
- clear-destination:
如果设置为true,则在提取下载之前删除目标目录。默认为true。
示例
[gae_sdk] # Dowloads and extracts the App Engine SDK. recipe = appfy.recipe.gae:sdk url = http://googleappengine.googlecode.com/files/google_appengine_1.3.5.zip destination = ${buildout:parts-directory} hash-name = false clear-destination = true
appfy.recipe.gae:tools
在buildout目录中安装Python可执行文件和几个SDK脚本:appcfg、bulkload_client、bulkloader、dev_appserver和remote_api_shell。
它还允许为dev_appserver设置默认值。
此配方扩展了zc.recipe.egg.Scripts,因此该配方中所有选项也都是有效的。
选项
- sdk-directory:
App Engine SDK目录的路径。可以是绝对路径,也可以是引用appfy.recipe.gae:sdk目的地选项的引用。默认为${buildout:parts-directory}/google_appengine。
- appcfg-script:
要安装在bin目录中的appcfg脚本名称。默认为appcfg。
- bulkload_client-script:
要安装在bin目录中的bulkloader脚本名称。默认为bulkload_client。
- bulkloader-script:
要安装在bin目录中的bulkloader脚本名称。默认为bulkloader。
- dev_appserver-script:
要安装在bin目录中的dev_appserver脚本名称。默认为dev_appserver。
- remote_api_shell-script:
要安装在bin目录中的remote_api_shell脚本名称。默认为remote_api_shell。
- config-file:
包含在脚本中使用的默认值的配置文件。默认为gaetools.cfg。
- extra-paths:
要包含在生成的脚本sys.path中的额外路径。
- initialization:
允许指定要包含在脚本中的某些Python代码。
示例
[gae_tools] # Installs appcfg, dev_appserver and python executables in the bin directory. recipe = appfy.recipe.gae:tools sdk-directory = ${gae_sdk:destination}/google_appengine # add extra code initialization = import dev_appserver dev_appserver.fix_sys_path() # Add these paths to sys.path in the generated scripts. extra-paths = app/lib app/distlib
注意,此示例引用了appfy.recipe.gae:sdk示例中的gae_sdk部分。也可以使用绝对路径。
为了设置启动dev_appserver的默认值,在定义的配置文件(默认为gaetools.cfg)中创建一个dev_appserver部分。例如
[dev_appserver] # Set default values to start the dev_appserver. All options from the # command line are allowed. They are inserted at the beginning of the # arguments. Values are used as they are; don't use variables here. recipe = appfy.recipe.gae:tools defaults = --datastore_path=var/data.store --history_path=var/history.store --blobstore_path=var/blob.store app
每个选项应单独一行设置,如上所示。调用dev_appserver时提供的选项将覆盖默认值。
版本
版本 0.9.10 - 2015年2月21日
等待在安装时检查空sdk url(Joshua Johnston)
版本 0.9.9 - 2014年11月20日
修复在获取最新SDK时出现的401错误代码问题
版本 0.9.8 - 2014年10月26日
如果未指定‘url’,则获取最新SDK版本(Oliver Brook)
添加PEP8和代码风格检查
版本 0.9.7 - 2014年7月22日
添加允许运行多个yaml文件的修复
版本 0.9.6 - 2014年6月2日
添加endpointscfg脚本,用于与Google Cloud Endpoints一起工作
版本 0.9.5 - 2014年5月11日
将任何初始化选项追加到生成的初始化输出中(Josh Johnston)
版本 0.9.4 - 2013年12月1日
将包移动到Github
从z3c.recipe.egg移动到zc.recipe.egg
版本 0.9.3 - 2010年12月3日
更改要求
zc.buildout >= 1.5.2 z3c.recipe.scripts >= 1.0.1 zc.recipe.egg >= 1.3.2
版本 0.9.1 - 2010年11月27日
将选项‘clear-destination’重新添加到dowanload配方中,默认为true。当文件存在时,它会导致错误,而‘ignore-existing’无法避免它。
版本 0.9 - 2010年11月23日
脚本现在扩展z3c.recipe.scripts.scripts.Scripts,以更好地与buildout 1.5.2兼容。
appfy.recipe.gae.sdk接受sha1sum选项,以检查Google提供的SDK校验和。
移除了hexagonit.recipe.download,因为它不足以允许进行sha1校验和检查。
版本 0.8 - 2010年7月27日
当未找到egg info时不抛出IOError,而仅发出警告,让安装继续进行。
版本 0.7.2 - 2010年6月18日
os.makedirs()而不是os.mkdirs(). 哎呀。
版本 0.7.1 - 2010年6月18日
小改进:在为app_lib创建备份时,使用os.mkdirs()而不是os.mkdir()(Tom Lynn)。
版本 0.7 - 2010年6月17日
添加了对多行top_level的支持。现在它可以处理top_level.txt中有多行的egg。感谢Benjamin Kampmann为此做出的贡献(问题#3)。
添加ignore-packages选项,这对于忽略在App Engine上无用的setuptools、distribute和其他依赖包很有用。
现在单个模块也由ignore-globs匹配。
ignore-globs现在移除不相关的路径前缀,以实现更好的匹配。
记录了extra-paths,这对于在脚本中将库目录添加到sys.path中很有用。
进行了一些重构和清理。
版本 0.6.1 - 2010年6月3日
如果未找到egg info,则不安装包,而不是中断。这导致当setuptools声明为依赖项时出现问题。
版本 0.6 - 2010年6月1日
app_lib现在也可以安装开发egg。
版本 0.5.2 - 2010年5月27日
正确安装了单个文件。
命名空间包现在也放在相同的目录结构中。这导致在尝试第二次创建目录时出现错误。
版本 0.5.1 - 2010年5月17日
appfy.recipe.gae:app_lib现在扩展zc.recipe.egg.Scripts,因此包中的脚本会像以前一样安装。
版本 0.5 - 2010年5月5日
删除了校验和检查,现在如果delete-safe设置为true(这是默认值),则将文件移动到备份目录。这使得构建更快,避免了令人讨厌的无效校验和错误。
版本 0.4.5 - 2010年5月5日
使用tempfile.gettempdir()保存临时文件。谢谢,tlynn。
版本 0.4.4 - 2010年5月3日
默认在app_lib中解压缩egg,否则我们无法使用某些egg。
版本 0.4.3 - 2010年5月3日
仅接受多行配置的gaetools。
修复了app_lib中的tmpdir。
版本 0.4.2 - 2010年5月1日
app_lib现在扩展zc.recipe.egg.Eggs并将默认egg设置为空字符串,以避免错误。
更多小的重构。
版本 0.4.1 - 2010年5月1日
从 app_lib 中移除了 primary-lib-directory 选项。
代码清理和重构。
版本 0.4 - 2010年4月30日
修复了当 buildout 配置为使用绝对路径时脚本路径的问题。修复了问题 #1。感谢 Lacrima.Maxim 提供的报告。
脚本现在使用 alter_sys=True 运行,因此使用 __doc__ 的帮助信息可以正确显示。
版本 0.3 - 2010年4月29日
向 appfy.recipe.gae:tools 添加了 config-file 选项,用于定义设置脚本默认参数的配置文件。
版本 0.2 - 2010年4月29日
添加了 bulkload_client、bulkloader 和 remote_api_shell 脚本。
修复了脚本入口点:它们在 Windows 上中断;现在可以正常工作。
现在所有食谱都在 Windows 上测试并通过。
版本 0.1 - 2010年4月28日
初始发布
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。