脚本用于创建Grok项目目录,安装Grok、Grok工具包和Zope工具包,并为新的Grok网络应用程序设置完整框架。
项目描述
脚本用于创建Grok项目目录,安装Grok、Grok工具包和Zope工具包,并为新的Grok网络应用程序设置完整框架。
描述
grokproject提供了一个简单的方法来开始使用Grok网络应用程序。只需安装grokproject
$ easy_install grokproject
如果您已经安装了grokproject的旧版本,则可以通过以下方式升级
$ easy_install -U grokproject
之后,您可以使用项目名称作为参数运行grokproject脚本
$ grokproject MammothHerd ... many lines of output here
这将不仅为您创建一个工作区域,还会下载和安装Grok及其依赖项。
项目区域创建成功后,您将在src目录中找到一个空的Python包“框架”,在其中您可以放置您的网络应用程序代码。
要启动应用程序服务器,执行
$ cd MammothHerd $ bin/paster serve parts/etc/deploy.ini
以守护进程模式启动/停止
$ bin/daemon start/stop
还有一个启用了Ajax的调试器(在使用此功能时,请将浏览器指向http://localhost:8080/@@login.html)
$ bin/paster serve parts/etc/debug.ini
要启动交互式调试器提示
$ bin/interactive_debugger
要针对完整设置的应用程序运行临时的Python脚本
$ bin/interactive_debugger [name_of_python_script].py
以这种方式运行的Python脚本将能够访问一个root、debugger和一个app对象,这些对象可用于“交互”应用程序环境。
对于了解paster的用户:grokproject只是paster模板的一个包装器。因此,您也可以运行
$ paster create -t grok MammotHerd
所有用于运行Grok的配置文件都可以在您项目的parts/etc/目录中找到。这些配置文件是在每次buildout运行时自动从etc/中的模板生成的。要修改配置文件,请编辑etc/中相应的模板,然后在之后重新运行buildout。
$ bin/buildout
这将重建parts/etc/中的文件。
变更
2.14 (未发布)
尚未有任何更改。
2.13 (2019-02-16)
更新versions.cfg
在setup.py中固定PasteScript的版本
2.12 (2018-01-22)
使用最新的buildout并适配测试
模板再次引用zopefoundation/grokproject基础。
移除了未使用的“use-site-packages”选项
修改了测试,使其与新的buildout版本兼容
更新versions.cfg
使用buildout版本2.11.0
适配测试,因为buildout的输出不再具有确定性。
2.11 (2017-10-27)
纠正了由于在templates.py中更改导入urllib的方式而导致的意外read()结果。
2.10 (2017-10-24)
修复了对最新Grok版本信息中基于旧svn的版本目录的不正确引用。
对测试程序进行了一些小的修复,以便测试(以及Travis-CI)能够再次运行。
进行了一些Python-3的准备工作。
2.9 (2013-02-14)
修复了2.8版brown-paper-bag,其中不包括源分发所需的全部文件。
2.8 (2013-02-13)
更新bootstrap.py(适用于grokproject buildout和项目模板),以使用zc.buildout <2.0dev。
2.7 (2012-05-02)
包含grokcore.chameleon。生成的索引视图模板是一个基于chameleon的模板。
2.6 (2011-05-26)
之前放置的各个日志文件存在不一致性。通过在整个过程中使用预定的“{buildout}/var/log”位置来解决这个问题。
移除了为向后兼容性而留下的log和data部分占位符。弃用期已结束。注意:如果您要更新现有项目,用新生成的项目的buildout.cfg替换您的buildout.cfg,请确保没有留下重要的data和log子目录!
2.5 (2011-02-02)
对有问题的项目名称进行了更好的检查和测试。
2.4 (2011-01-20)
已移除z3c.testsetup,以手动注册测试。测试已移动到“tests”子目录。有关如何注册测试的更多信息,请参阅tests.py。
“static”目录不再由grok解析并注册为DirectoryResource。它已被fanstatic取代。
为了将您的当前grok项目更新到最新的grokproject,您需要为static目录注册一个fanstatic库。
在项目的setup.py中包含以下代码
from fanstatic import Library library = Library('$name_of_your_project', 'static')
在项目的setup.py中添加以下入口点
'fanstatic.libraries': [ '$name_of_your_project = $name_of_your_project.resource:library', ]
还将zope.fanstatic和fanstatic添加到setup.py中的install_requires。如果您在configure.zcml中使用z3c.autoinclude,zope.fanstatic的注册将自动拾取。如果您不使用z3c.autoinclude,请在configure.zcml中包含zope.fanstatic。
将zope.conf拆分为zope.debug.conf和zope.deploy.conf,以便从paster配置debug.ini和deploy.ini中提取它们。
在debug/devmode中,grok会检测页面模板中的更改,fanstatic会重新计算资源URL。
在非-dev/deploy模式中,grok缓存页面模板,fanstatic缓存资源URL。
目标是快速查看debug.ini和deploy.ini之间的差异,而无需在parts/etc中做任何改动。
2.3 (2011-01-10)
使用“extensions +=”而不是“extensions =”,以便在其他扩展的cfg文件中定义扩展。
在模板中添加了include_site_packages、install_requires和additional_grants变量,以便在dolmenproject中使用。在主函数中使用vars和template_main参数,以便在dolmenproject中重用。
2.2.1 (2011-01-05)
deploy.ini中的accesslogging过滤器丢失了,但后来又找到了。
2.2 (2010-11-26)
在buildout.cfg中添加了默认的“unzip=true”行为。
在新建的buildout.cfg中添加了“daemon”部分。
解决 virtualenv 中的 '-S' 错误。 https://bugs.launchpad.net/virtualenv/+bug/572545
2.1 (2010-10-26)
注意:由于这些更改,`grokproject` 将不再支持基于 Grok 1.2 之前版本的项目的构建!
已移除 `--grokversion` 和 `--grok-release-url` 命令行选项,改为使用 `-version-url` 选项。此 URL 应指向包含所有相关软件包版本“pins”的 buildout `*.cfg` 文件。默认 URL 仍通过 http://grok.zope.org/releaseinfo/current 查询。
新创建的项目将使用来自 `zope.app.wsgi.testlayer` 的测试层和测试浏览器。
将新创建项目的引导过程委托给项目的 `bootstrap.py` 和项目中的 `bin/buildout`。这样可以隔离引导过程,避免与 grokproject 本身产生潜在的 zc.buildout 版本冲突。
更新以使用 z3c.recipe.scripts 而不是 zc.recipe.egg,作为升级到 zc.buildout-1.5.2 的一部分。
2.0.1 (2010-05-30)
确保空日志和 extends-cache 目录存在。
2.0 (2010-05-30)
使用管道设置应用程序。
在 `debug.ini` 和 `deploy.ini` 模板中添加 logger `grok`。此记录器记录由较新版本的 grokcore.view 模板注册表发出的警告消息(对于较旧的 grok 版本没有影响)。
默认情况下,警告消息在 `debug.ini` 中显示,在 `deploy.ini` 中禁用。
要更改设置,分别编辑 `etc/debug.ini.in` 和 `etc/deploy.ini.in` 中的 `[logger_grok]` 部分,然后重新运行 buildout。
在 http://grok.zope.org/releaseinfo 上使用新的“版本信息”布局。
更具体地说,“bundlemaker”或“eggbasket”功能不再使用。相反,grokproject 预期找到 http://grok.zope.org/releaseinfo/[y.x]/versions.cfg 文件和包含 grok 所有依赖项的分发的 `http://grok.zope.org/releaseinfo/[y.x]/eggs` 目录。
此“eggs”目录通过新创建项目的 `buildout.cfg` 中的 `find-links` 指令使用。
versions.cfg 文件扩展了 groktoolkit 文件,而这些文件又从 zopetoolkit cfg 文件扩展而来。新创建的项目将设置一个 `extends-cache` 指令,以支持“离线”构建(只要没有新软件包需要构建)。
注意:由于这些结构变化,`grokproject` 将不再支持基于 Grok 1.1.1(或 Grok 1.0 线的 1.0.2)之前版本的项目的构建。
移除交互式调试器入口点,改为生成用于新创建项目的类似命令行工具的 buildout 部分。
为 bin/zpasswd 工具使用 zpassword 功能。
不再构建 zdaemon ctl。
创建的项目将使用现在在 grokcore.startup 中定义的 #main 和 #debug 入口点。
应用程序特定的版本“pins”现在位于 Grok 的 versions cfg 中。
移除“–zopectl”选项。Paster 设置现在是创建新项目的唯一支持方法。修复错误 https://bugs.launchpad.net/grok/+bug/524262
1.0.3 (2010-02-21)
修复bug https://bugs.launchpad.net/grok/+bug/524000 Win32首次用户问题:如果不存在 .buildout/default.cfg 文件且用户尚未安装pywin32,则 grokproject 不工作。
为使用Grok 1.1a2 KGS创建的项目固定zope.app.container 3.8.1和zope.app.folder 3.5.1(这些包在发布版本的versions.cfg中没有固定)。
对于Python 2.5和2.6,使用hashlib模块代替Python 2.6中已弃用的sha模块。
使用修复后的grokui.admin 0.4.1。
1.0.2 (2010-02-14)
添加了许可文件。
1.0.1 (2010-01-24)
修复bug https://bugs.launchpad.net/grok/+bug/487561 在site.zcml和ftesting.zcml模板中授予所有用户(包括已认证的用户)zope.View和zope.app.dublincore.view权限。
针对zopectl驱动的安装固定zc.zope3recipes。zc.zope3recipes的最新版本需要zc.recipe.egg >= 1.2.0,而我们目前不支持。因此,zctl-builds可能会因版本约束条件不满足而失败。
1.0 (2009-10-07)
默认情况下,debug.ini文件现在配置为不重新抛出未经授权的异常。这将确保在使用z3c.evalexception中间件时,Zope的认证机制继续工作。
1.0b1 (2009-09-17)
现在使用var/目录来存储var/filestorage,var/blobstorage和var/log,而不是将所有这些存储在parts/目录中。这符合大多数用户的期望:parts/可以重新构建,var/必须备份。
在paster模板的zope.conf.in中添加了blob存储。Blob存储默认启用。
从buildout.cfg中删除了find-links。
将生成的项目中的固定版本添加了两个软件包:z3c.recipe.dev = 0.5.3,zc.lockfile = 1.0.0
在生成的项目中使用刚刚发布的z3c.recipe.eggbasket 0.4.3。
将z3c.recipe.i18n的版本提高以使用:0.5.3在安装时不再发出任何警告。
断言项目名称是有效的Python标识符 https://bugs.launchpad.net/bugs/223560 https://bugs.launchpad.net/bugs/373592
生成包含grok的新默认权限的site.zcml。现在grok.View是默认视图,而不是zope.Public。
1.0a4 (2009-04-17)
修复了生成的zope.conf中的错误站点定义路径。
修复bug https://bugs.launchpad.net/grok/+bug/358719 Windows路径中的反斜杠现在在配置.ini文件中的Python表达式中被引号引用。感谢Ben Dadsetan和Roger Erens提供的补丁、测试和解决方案。
添加过滤器以仅包括在生成的versions.cfg中尚未由下载的grok KGS提供的egg。
将find-links重新引入生成的buildout.cfg中的Zope包索引,以避免z3c.widget和其他仅托管在Zope上的包的问题。
从生成的versions.cfg中删除了grokui.admin。它应该由Grok的versions.cfg固定。
1.0a3 (2009-04-03)
修复bug https://bugs.launchpad.net/grok/+bug/315223 我们在~/.buildout/default.cfg中放置的eggs-directory路径现在在Windows上是一个缩短的版本(8.3 DOS风格)。
修复bug https://bugs.launchpad.net/grok/+bug/160196 现在存储初始密码是SHA1编码的。
使zope.app.server.zpasswd实用工具在bin/中可用作为命令行工具。
修复bug https://bugs.launchpad.net/grok/+bug/325299 基于paster的grok项目中的配置文件现在由zc.buildout在新的位置parts/etc/生成,并可调整以适应本地环境。重新运行bin/buildout现在从etc/中可以找到的模板重新构建parts/etc/中的配置文件。
现在启动paster您必须这样做
$ bin/paster serve parts/etc/deploy.ini
通过支持更快的测试运行来修复bug https://bugs.launchpad.net/grok/+bug/315214。有关详细信息,请参阅README-shorttests.txt。
已将生成的versions.cfg中所有包版本固定到最新发布的版本。特别是将z3c.recipe.eggbasket固定到最新版本,0.4.1。
集成了grokcore.startup 移除了paster模板中的startup.py
Paster:在运行debug.ini配置文件时,需要首先访问http://localhost:8080/@@login.html
修复了https://bugs.launchpad.net/grok/+bug/332173 添加中间件以支持访问日志
1.0a2 (2009-01-12)
添加了--grokversion选项,该选项用于安装创建项目时请求的Grok版本。示例
grokproject --grokversion=0.14.1 Sample
或
paster create -t grok Sample grokversion=0.14.1
添加了--version选项以显示grokproject版本,并保持与大多数命令行工具的兼容性。
修复了https://bugs.launchpad.net/grok/+bug/315795 grokproject的paster变体现在再次接受包含大写字母的项目名称。
1.0a1 (2009-01-08)
修复了:使用--svn-repository选项会因OSError而失败。
为paster添加了另一个模板集
添加了选项–zopectl以选择“zopectl”模板
将“paster”设置为默认模板集
0.9 (2008-09-29)
将grokui.admin添加为使用grokproject创建的项目依赖项。
在运行最终安装时尊重用户请求的详细程度。
修复了在多次调用buildout时产生双倍/三倍输出的行为。
grokproject现在使用z3c.recipe.i18n而不是lovely.recipe来生成i18n脚本来生成i18n脚本。
在生成的项目的bootstrap.py末尾,我们现在给用户提供了一个提示,即他可以运行bin/buildout。
显式运行eggbasket菜谱的安装。
修复了ftesting.zcml,使其不包含grok包:它阻止覆盖由grok包含的任何内容。
0.8 (2008-07-14)
在生成的versions.cfg中固定了zc.buildout以及使用的菜谱。
在从grok.zope.org获取发布信息文件时检查下载错误。这样,我们向用户提供有意义的错误消息。
由于我们已使用类似于bootstrap.py的代码在需要时动态安装它,因此已删除对zc.buildout的依赖。
删除了被分解到z3c.recipe.eggbasket中的代码,并且已经通过执行“buildout bootstrap”由grokproject调用。
实际上将所需的eggbasket部分添加到生成的buildout.cfg中。修复了https://bugs.launchpad.net/grok/+bug/242368
在尝试获取大grok tarball时捕获下载错误。
使用硬编码的bootstrap.py而不是通过外部引用它或在每个grokproject运行时下载当前trunk修订版(这些选项可能是危险的)。
还在bootstrap.py的末尾添加了一条安装eggbasket部分的语句。
在模板中添加了testbrowser测试/功能测试
为创建的项目添加了对z3c.testsetup的依赖。
将函数is_grok_installed和install_grok分解出来。
如果Grok尚未安装,则下载包含Grok所需所有egg的tarball,并在共享egg目录中安装这些egg。
如果用户有~/.buildout/default.cfg,则不会向创建的buildout.cfg添加任何内容。如果没有default.cfg,则创建一个,其中包含指定egg目录为~/.buildout/eggs的行。如果用户在命令行上指定了–eggs-dir/eggs_dir,则将其添加到buildout.cfg中。
如果没有.default.cfg文件,则创建它。仅在用户在default.cfg中还没有egg-directory时,才在创建的buildout.cfg文件中放置egg目录。
如果我们已经有了默认值,则不要请求egg目录。
通过将内容移动到main.py、templates.py和utils.py,重构grokproject/__init__.py,就像zopeproject做的那样。
将README.txt文件添加到创建的static/目录中。主要原因:否则‘python setup.py sdist’根本不会添加那个空目录。
添加了当前修复版本的本地下载作为versions.cfg。
在 buildout.cfg 中添加对 eggs-directory 选项的处理,来源于 zopeproject。
添加了对 grokproject 自身的测试。
从 zopeproject 拷贝 run_buildout 函数,并放入 utils.py 中。在粘贴模板的后钩子中调用它。在调用 paster 后,在 grokproject 命令中直接退出。
在提问之前进行检查。定义一些变量的获取器。将 no_buildout 从命令移到模板的 run_buildout 中。在模板中使用 version_info_url 而不是将其重命名为 extends。
移除 bin/grokproject 的 –newer 选项。使用模板中的‘newest’选项。
将 version_info_url 移到模板变量中,而不将其作为一个真正的问题。
将 grokproject 模板重命名为 grok。我喜欢简短的名字。
不要将 eggs-directory 添加到 buildout.cfg 中,因为创建的绝对路径使得结果项目在其他计算机上不可用。
“bin/paster create -t grokproject” 现在又可以工作了。
确保 bin/paster 被添加,这样我们也可以只测试我们的 paster 模板而不是命令。
修复 https://bugs.launchpad.net/grok/+bug/223247:grokproject 生成了错误的 ftesting.zcml。在 ftesting.zcml 模板中将 zope.app.securitypolicy.zopepolicy.ZopeSecurityPolicy 替换为 zope.securitypolicy.zopepolicy.ZopeSecurityPolicy(依赖于 Grok 版本 > 0.11.1)。
0.7 (2008-04-22)
现在可以通过命令行选项设置每个交互式问题。
不再要求输入包含 grok.Application 子类的模块的名称。现在默认为‘app.py’,稍后更改名称很容易。
修复 https://bugs.launchpad.net/bugs/161947:buildout.cfg 模板中包含两次 [data] 部分。
默认生成 <includeDependencies package="." /> 语句。如果新依赖项被添加到 setup.py 并需要 ZCML,ZCML 将自动加载。(依赖于带有 z3c.autoinclude 的新 Grok 版本)
0.6 (2007-10-10)
在 ftesting.zcml_tmpl 中添加包含包指令,以启用生成应用程序的功能测试。
更新 site.zcml 模板,启动时不再有烦人的警告。
添加对 i18n 的 buildout 支持(感谢 lovely.recipe.i18n)。
现在创建的 buildout.cfg 包含一个指向当前 Grok 版本 version.cfg 的 URL 的 extends 指令。此 URL 可以用 –version-info-url 命令行选项覆盖。
有关更多信息,请参阅 http://grok.zope.org/releaseinfo/readme.html。
0.5.1 (2007-07-14)
使用 zc.zope3recipes 中的新‘application’配方,这样我们就可以从 buildout.cfg 中删除已死亡的 [zope3] 部分。
0.5 (2007-07-14)
bin/instance 脚本已重命名为 bin/zopectl,以提高可识别性。
grokproject 默认情况下更安静(通过降低 PasteScript、easy_install 和 zc.buildout 的噪音)。使用 -v 选项以获得详细模式。
修复 https://bugs.launchpad.net/grok/+bug/119805:使用 grokproject 创建的新项目不能命名为‘grok’或‘zope’。
默认情况下,zc.buildout 现在将告诉将鸡蛋放置在用户指定的共享鸡蛋目录中。默认情况下,它不会查找现有鸡蛋的新版本。
0.4 (2007-07-12)
由于 Grok 现在依赖于 Zope 3.4 鸡蛋,因此使用 zc.zope3recipes 应用程序和实例配方。
不要为引导和运行 buildout 启动进程。相反,尝试简单地导入 zc.buildout。如果那不起作用,调用 setuptools API 来安装它,然后简单地导入它。
修复 https://bugs.launchpad.net/grok/+bug/113103:默认索引模板缺少关闭 html 标签。
0.1至0.3
初始开发版本,支持 Zope 3.3。
项目详细信息
grokproject-2.13.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ea48689011dd19beb44093c756d1055714a94089981d672e6cfc87efa620c439 |
|
MD5 | 3f0fdb9b50bcd3a47b7e4f266a00d958 |
|
BLAKE2b-256 | 6171eda083492af1c91c74ac7cf42571895c6f351337af388ffc6e27d29d9f0a |