跳转到主要内容

脚本用于创建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脚本将能够访问一个rootdebugger和一个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”位置来解决这个问题。

  • 移除了为向后兼容性而留下的logdata部分占位符。弃用期已结束。注意:如果您要更新现有项目,用新生成的项目的buildout.cfg替换您的buildout.cfg,请确保没有留下重要的datalog子目录!

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.fanstaticfanstatic添加到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)

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。

    https://bugs.launchpad.net/bugs/387332

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 (61.0 kB 查看哈希)

上传时间

支持者