我的Plone产品没有';不会出现在quickinstaller中

我的Plone产品没有';不会出现在quickinstaller中,plone,plone-4.x,Plone,Plone 4.x,我有一个Plone站点,它有一个传统的产品BaseProduct(直接在Zope安装的Products文件系统目录中进行版本控制);其余的设置是基于构建的 对于项目的一个分支,我需要另一个产品AdditionalProduct,这是我用同样的方法制作的(我知道这不是目前最先进的方法;但我以前就是这样做的……) 现在我可以使用quickinstaller安装AdditionalProduct(现在它只包含一个皮肤目录和一个模板,但这当然会改变) 可悲的是,这一切都停止了;该产品不再显示在quick

我有一个Plone站点,它有一个传统的产品
BaseProduct
(直接在Zope安装的
Products
文件系统目录中进行版本控制);其余的设置是基于构建的

对于项目的一个分支,我需要另一个产品
AdditionalProduct
,这是我用同样的方法制作的(我知道这不是目前最先进的方法;但我以前就是这样做的……)

现在我可以使用quickinstaller安装
AdditionalProduct
(现在它只包含一个皮肤目录和一个模板,但这当然会改变)

可悲的是,这一切都停止了;该产品不再显示在quickinstaller中。没有明显的错误;在实例启动期间,我能够
pdb.set_trace()
它,并且error.log中也没有错误

profiles.zcml
文件如下所示:

<configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
    i18n_domain="BaseProduct">
  <include package="Products.GenericSetup" file="meta.zcml" />
  <genericsetup:registerProfile
      name="default"
      title="AdditionalProduct"
      directory="profiles/default"
      description="Extension profile for AdditionalProduct."
      provides="Products.GenericSetup.interfaces.EXTENSION"
      />
</configure>

(从另一个fork早期的
附加产品
复制和更改;我真的不理解
“meta.zcml”
部分。)

我如何调试这个


我愿意先“eggify”我的产品(
AdditionalProduct
,因为它有问题;也许以后也会有
BaseProduct
),但我不确定工作量,以及如何使用……

您可以通过排除以下情况来调试它:

  • ZCML未加载(在profiles.ZCML和中引入语法错误) 重新启动Plone以确保已加载profiles.zcml。)
  • 您没有
    'z3c.autoinclude.plugin':'target=plone'
    入口点(不适用,因为您没有使用Python包)
  • Zope2没有加载您的产品,因为它不在products文件夹中,或者存在一些相关问题,例如缺少
    \uuuu init\uuuu.py
此外,您可能不需要以下内容,因为在您的产品加载之前,Plone应该已经包含这些内容:

  <include package="Products.GenericSetup" file="meta.zcml" />

(并且
file='meta.zcml'
表示“加载meta.zcml而不是默认文件名,即configure.zcml”)

最后,我建议创建一个Python包(也称为“eggify”)。有关概述,请参见以下内容:


您的产品应该有一个
configure.zcml
文件,其中包含您的
配置文件.zcml
,并带有以下指令:

<include file="profiles.zcml" />


是这样吗?

如果在配置文件中引入错误,有时产品会从quickinstaller中消失。转到Plone安装产品页面(不是ZMI!),检查页面底部可以看到这些错误的地方。@keul:你不是指quickinstaller(
portal\u quickinstaller
),是吗?我在那里找不到任何看起来像是错误消息的东西。不,从Plone用户界面。我不知道你的意思;我在
plone_控制面板
portal_控制面板
中看不到任何内容;产品在
prefs\u install\u products\u表单中不可见(“附加组件”)。我在gettext目录中找不到类似于
用户界面
的内容,因此最好的提示是页面的ID…显然ZCML没有加载。我为
BaseProduct
AdditionalProduct
引入了相同的错误;我看到了
BaseProduct
的预期错误,这导致启动失败,但没有看到
AdditionalProduct
的预期错误。当然,它与
BaseProduct
位于同一个
Products
文件夹中,并且它有一个
\uuuu init\uuuuuuuuuuuupy
文件(我可以通过
导入pdb;pdb.set\u trace()
行来证明它是执行的)。我将把这个入口点放在哪里?好的,找到入口点(
setup.py
)。我仍然不知道为什么不使用该产品。是否需要比
profiles.zcml
更重要的东西使其可见?对于记录-我同时将我的
附加产品
。也许这太过分了,但我可能也会eggify
BaseProduct
,这可能更有意义;事实上,该文件似乎在合并时丢失了。。。