首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >名为"MyApp“的Plone应用程序崩溃Plone

名为"MyApp“的Plone应用程序崩溃Plone
EN

Stack Overflow用户
提问于 2011-05-27 04:34:32
回答 3查看 176关注 0票数 0

我使用plone的实例文件夹的"bin/“目录中的"paster”命令创建了一个名为"MyApp“的plone应用程序(来自模板)-该命令是:

代码语言:javascript
复制
(from instance's root folder):> ./bin/paster create -t plone_app

当被问到名字时,我给了它"MyApp“。我将其复制到"src/“文件夹中,并将其注册到"buildout.cfg”文件中,然后运行buildout。我有这个过程工作的其他应用程序与不同的名称,但似乎这个特别的应用程序总是崩溃Plone。当我访问我的网站时,我得到的只有Zope (无法访问Plone)。有什么原因吗?"MyApp“是不是为其他导致崩溃的东西保留的名称空间?

我还需要注意的是,名字"myapp“很好用...

EN

回答 3

Stack Overflow用户

发布于 2011-05-27 06:22:18

当我尝试该命令时,它会像这样启动:

代码语言:javascript
复制
$ 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这样的名称。

票数 3
EN

Stack Overflow用户

发布于 2011-05-27 13:01:36

值得注意的是(特别是与Maurits的响应相关的),如果您使用'zopeskel‘脚本而不是paster,如下所示:

代码语言:javascript
复制
bin/zopeskel plone_app MyApp

您将收到一条错误消息,告诉您需要一个带有两个点的名称。这是使用'zopeskel‘脚本而不是paster命令的主要原因之一。当你安装zopeskel时,你应该在bin/paster旁边有一个bin/zopeskel。使用它,你会得到更好的错误信息和内联帮助。

票数 3
EN

Stack Overflow用户

发布于 2011-05-27 19:05:57

适用于我:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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配置文件,如下所示:

代码语言:javascript
复制
<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包的一个例子。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6144722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档