我的Plone产品没有';不会出现在quickinstaller中
我有一个Plone站点,它有一个传统的产品我的Plone产品没有';不会出现在quickinstaller中,plone,plone-4.x,Plone,Plone 4.x,我有一个Plone站点,它有一个传统的产品BaseProduct(直接在Zope安装的Products文件系统目录中进行版本控制);其余的设置是基于构建的 对于项目的一个分支,我需要另一个产品AdditionalProduct,这是我用同样的方法制作的(我知道这不是目前最先进的方法;但我以前就是这样做的……) 现在我可以使用quickinstaller安装AdditionalProduct(现在它只包含一个皮肤目录和一个模板,但这当然会改变) 可悲的是,这一切都停止了;该产品不再显示在quick
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。)
- 您没有
入口点(不适用,因为您没有使用Python包)'z3c.autoinclude.plugin':'target=plone'
- Zope2没有加载您的产品,因为它不在products文件夹中,或者存在一些相关问题,例如缺少
\uuuu init\uuuu.py
<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
更重要的东西使其可见?对于记录-我同时将我的附加产品
。也许这太过分了,但我可能也会eggifyBaseProduct
,这可能更有意义;事实上,该文件似乎在合并时丢失了。。。