我使用plone的实例文件夹的"bin/“目录中的"paster”命令创建了一个名为"MyApp“的plone应用程序(来自模板)-该命令是:
(from instance's root folder):> ./bin/paster create -t plone_app当被问到名字时,我给了它"MyApp“。我将其复制到"src/“文件夹中,并将其注册到"buildout.cfg”文件中,然后运行buildout。我有这个过程工作的其他应用程序与不同的名称,但似乎这个特别的应用程序总是崩溃Plone。当我访问我的网站时,我得到的只有Zope (无法访问Plone)。有什么原因吗?"MyApp“是不是为其他导致崩溃的东西保留的名称空间?
我还需要注意的是,名字"myapp“很好用...
发布于 2011-05-27 06:22:18
当我尝试该命令时,它会像这样启动:
$ paster create -t plone_app
Selected and implied templates:
ZopeSkel#nested_namespace A basic Python project with a nested namespace (2 dots in name)
ZopeSkel#plone_app A project for Plone products with a nested namespace (2 dots in name)这意味着您应该选择一个带有两个点的名称,如plone.app.mine,而不是MyApp。当您只是将MyApp作为项目名称时,它显然会创建一个包MyApp.plone.MyApp。
是的,如果paster (zopeskel)会在这里给出一个错误,那会更好。
实际上,当我在这里填写MyApp并在Plone 4站点中使用它时,它确实启动了。因此,粘贴您得到的准确的回溯可能会有所帮助。但最好的办法可能是选择一个更好的名字。
Plone本身对一些包(如plone.app.locales)使用嵌套名称空间。对于你自己的项目,我会说这是过度杀伤力。相反,可以尝试使用'paster create -t plone‘,它需要一个像my.app或clientname.theme这样的名称。
发布于 2011-05-27 13:01:36
值得注意的是(特别是与Maurits的响应相关的),如果您使用'zopeskel‘脚本而不是paster,如下所示:
bin/zopeskel plone_app MyApp您将收到一条错误消息,告诉您需要一个带有两个点的名称。这是使用'zopeskel‘脚本而不是paster命令的主要原因之一。当你安装zopeskel时,你应该在bin/paster旁边有一个bin/zopeskel。使用它,你会得到更好的错误信息和内联帮助。
发布于 2011-05-27 19:05:57
适用于我:
aclark@Alex-Clarks-MacBook-Pro:~/Developer/test-4.1/src/ > paster create -t plone_app MyApp
Selected and implied templates:
ZopeSkel#nested_namespace A basic Python project with a nested namespace (2 dots in name)
ZopeSkel#plone_app A project for Plone products with a nested namespace (2 dots in name)
Variables:
egg: MyApp
package: myapp
project: MyApp
Expert Mode? (What question mode would you like? (easy/expert/all)?) ['easy']:
Version (Version number for project) ['1.0']:
Description (One-line description of the project) ['']:
Creating template nested_namespace
Creating directory ./MyApp
Recursing into +namespace_package+
Creating ./MyApp/MyApp/
Recursing into +namespace_package2+
Creating ./MyApp/MyApp/plone/
Recursing into +package+
Creating ./MyApp/MyApp/plone/MyApp/
Copying __init__.py_tmpl to ./MyApp/MyApp/plone/MyApp/__init__.py
Copying __init__.py_tmpl to ./MyApp/MyApp/plone/__init__.py
Copying __init__.py_tmpl to ./MyApp/MyApp/__init__.py
Copying README.txt_tmpl to ./MyApp/README.txt
Recursing into docs
Creating ./MyApp/docs/
Copying HISTORY.txt_tmpl to ./MyApp/docs/HISTORY.txt
Copying setup.py_tmpl to ./MyApp/setup.py
Creating template plone_app
Recursing into +namespace_package+
Recursing into +namespace_package2+
Recursing into +package+
Replace 0 bytes with 86 bytes (0/0 lines changed; 3 lines added)
Copying __init__.py_tmpl to ./MyApp/MyApp/plone/MyApp/__init__.py
Copying configure.zcml_tmpl to ./MyApp/MyApp/plone/MyApp/configure.zcml
Copying tests.py_tmpl to ./MyApp/MyApp/plone/MyApp/tests.py
Copying version.txt_tmpl to ./MyApp/MyApp/plone/MyApp/version.txt
Recursing into docs
Copying INSTALL.txt_tmpl to ./MyApp/docs/INSTALL.txt
Copying LICENSE.GPL to ./MyApp/docs/LICENSE.GPL
Copying LICENSE.txt_tmpl to ./MyApp/docs/LICENSE.txt
Replace 890 bytes with 973 bytes (0/32 lines changed; 4 lines added)
Copying setup.py_tmpl to ./MyApp/setup.py使用buildout:
aclark@Alex-Clarks-MacBook-Pro:~/Developer/test-4.1/ > cat buildout.cfg
[buildout]
extends = http://dist.aclark.net/build/plone/4.1.x/develop.cfg
develop = src/MyApp
[plone]
eggs +=
MyApp显然,这并不是您所期望的结果,paster创建了一个名为"MyApp.plone.MyApp“的三重嵌套命名空间包:-)
进一步注意:此应用程序不会出现在Plone的附加组件中,除非您在MyApp/plone/MyApp/configure.zcml中添加一个GenericSetup配置文件,如下所示:
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:five="http://namespaces.zope.org/five"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
i18n_domain="MyApp.plone.MyApp">
<five:registerPackage package="." initialize=".initialize" />
<genericsetup:registerProfile
name="default"
title="MyApp"
directory="profiles/default"
description="MyApp"
provides="Products.GenericSetup.interfaces.EXTENSION"
/>
</configure>然后,您应该会看到:

最后,非命名空间包没有什么“错误”,它们只是约定(相对于扁平命名空间包有优缺点,反之亦然)。请参见:
“扁平”命名空间Plone包的一个例子。
https://stackoverflow.com/questions/6144722
复制相似问题