zopeskel失败(无法导入urllib.parse)

时间:2015-06-26 08:37:57

标签: plone buildout plone-4.x

我无法在我的Plone站点中安装zopeskel的可用版本,无论是在基于Debian的Linux机器上还是在基于CentOS的服务器上。

buildout.cfg我的this how-to之后:

[zopeskel]
recipe = zc.recipe.egg
unzip = true
eggs =
    ZopeSkel <= 3.0dev
    Paste
    PasteDeploy
    PasteScript
#    ${buildout:eggs}

(我现在没有敏捷内容也没有diazothemes,所以我尝试了没有zopeskel.dexterityzopeskel.diazotheme,但它似乎没有区别;同样的结果当我添加它们)。我的[buildout]部分不包含eggs,因此我也需要对此进行评论。

建成后我尝试了

$ bin/zopeskel --list
Traceback (most recent call last):
  File "bin/zopeskel", line 15, in <module>
import zopeskel.zopeskel_script
  File ".../eggs/ZopeSkel-2.21.2-py2.7.egg/zopeskel/__init__.py", line 2, in <module>
from zopeskel.basic_namespace import BasicNamespace
  File ".../eggs/ZopeSkel-2.21.2-py2.7.egg/zopeskel/basic_namespace.py", line 2, in <module>
from zopeskel.vars import var, DottedVar, StringVar, BooleanVar, TextVar
  File ".../eggs/ZopeSkel-2.21.2-py2.7.egg/zopeskel/vars.py", line 2, in <module>
from paste.script.templates import var as base_var
  File ".../eggs/PasteScript-2.0.2-py2.7.egg/paste/script/templates.py", line 7, in <module>
from . import copydir
  File ".../eggs/PasteScript-2.0.2-py2.7.egg/paste/script/copydir.py", line 6, in <module>
from six.moves.urllib.parse import quote
ImportError: No module named urllib.parse
$ grep six bin/zopeskel
    '.../eggs/six-1.2.0-py2.7.egg',

这是一个相当旧的版本(pip install six给了我1.9.0),它不包含quoteurllib.parse之类的内容。

我假设某些涉及的包无法指定所需的版本;但是添加像six >= 1.3这样的东西甚至没有建立。

我该如何解决这个问题?谢谢!

2 个答案:

答案 0 :(得分:1)

我想1.2.0包的six版本是由您的广告extends之一指定的。

您可以使用buildout annotate查找它是哪一个。

您需要添加versions部分:

[versions]
six = 1.9.0

答案 1 :(得分:1)

让它失败!

说真的,为mrbobthis template ......

抛弃了zopeskel 从长远来看,zopeskel / paster现在被认为是不可维护的(由于依赖性根本没有被处理过.mrbob没有主要的依赖性,而且是Plone 5通用安装程序采用的方法而不是zopeskel。

但要使其更实用:zopeskel&amp;它的插件会经常出现像你的插件一样的问题,mrbob不符合我的经验。因为它被维护,它还将产生比zopeskel更多的最新“模型代码”。

不可否认,mrbob还没有(但)拥有zopeskel所做的插件数量,但由于原型已经被灵巧所取代,因此生成的“样板代码”不那么重。这是你的选择,但是如果你现在开始使用Plone - 那么只需要学习一个mrbob或zopeskel(还有足够的其他东西可供学习)。

像这样安装(显然你也必须将mrbob添加到你的零件清单中)

[mrbob]
recipe = zc.recipe.egg:scripts
eggs =
    mr.bob
    bobtemplates.plone