2011-05-26 22 views
0

我使用了位於我的Plone實例文件夾的「bin /」目錄中的「paster」命令來創建名爲「MyApp」的plone應用程序 - 命令爲:名爲「MyApp」的Plone應用程序崩潰Plone

(from instance's root folder):> ./bin/paster create -t plone_app 

當問及名稱時,我給了它「MyApp」。我將其複製到「src /」文件夾中,並將其註冊到「buildout.cfg」文件中並運行構建。我有這個進程爲其他名稱不同的應用程序工作,但看起來這個特定的應用程序總是崩潰Plone。當我訪問我的網站時,我得到的只有Zope(並且無法訪問Plone)。爲什麼有這個原因? 「MyApp」是否是導致崩潰的其他內容的保留名稱空間?

我還應該注意到,一個名爲「MYAPP」的作品就好了... ...

+1

*它怎麼會崩潰?如果你看到Zope,什麼都不會崩潰。你有任何錯誤? – 2011-05-26 22:13:13

回答

3

當我嘗試的命令,它啓動這樣的:

$ 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) 

這意味着不用MyApp的,你應該選擇一個有兩個點的名稱,比如plone.app.mine。當你把MyApp作爲項目名稱時,它顯然會創建一個包MyApp.plone.MyApp。

是的,如果paster(zopeskel)在這裏給出錯誤會更好。

實際上,當我在這裏填寫MyApp並將它用於Plone 4站點時,它確實啓動了。所以它可能有助於粘貼你得到的確切回溯。但最好的可能是選擇一個更好的名字。

Plone本身對某些包使用嵌套命名空間(如plone.app.locales)。對於你自己的項目,我會說它是矯枉過正。相反,您可以嘗試使用'paster create -t​​ plone',它需要使用my.app或clientname.theme這樣的名稱。

3

值得一提的(特別是關係到Maurits的響應),如果你使用‘的ZopeSkel’腳本,而不是貼紙的,就像這樣:

bin/zopeskel plone_app MyApp 

你會得到一個錯誤信息,告訴你,你需要一個有兩個點的名字。這是使用'zopeskel'腳本而不是paster命令的主要原因之一。當你安裝zopeskel時,你應該在bin/paster旁邊有一個bin/zopeskel。使用它,你會得到更好的錯誤消息和內聯幫助。

3

工作對我來說:

[email protected]:~/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 

隨着擴建:

[email protected]:~/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 

顯然,這是不是您所期望雖然結果,貼紙創造了一個三重嵌套命名包名爲「MyApp.plone.MyApp」 :-)

進一步注意:除非您在MyApp/plone/MyApp/configure.zcml中添加GenericSetup配置文件,否則此應用將不會顯示在Plone附件中:

<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> 

那麼你應該看到:

enter image description here

最後,沒有什麼「錯誤」與非命名的包,他們只是約定(超過平面命名空間封裝優點/缺點,並反之亦然)。參見:

用於 「平坦」 的命名空間的Plone包的一個例子。