python包命名空间的背后是什么:z3c,zc,collective?

时间:2011-02-19 20:00:07

标签: python zope

所以他们都与zope有某种关系。问题是怎么样的?

我对Zope不熟悉。我猜zc,z3c代表Zope ComponentZope3 Component,但我想确定。还有一个collective命名空间。它下面有什么样的包裹?

其他众所周知的python包命名空间是什么?

是否应该使用zc,z3c和其他名称命名包?

有时我看到以zc开头的软件包,我无法理解为什么它们是命名空间的。例如z3c.sqlalchemy具有命名空间,因为它是zope项目的sqlalchemy包装器。但另一个例子zc.buildout看起来像一个完全独立的项目。它是否仅仅因为它是由在Zope上工作的人开发而得到名称空间?如果我在Zope上工作那就意味着我应该在zc项目前加上我的项目,即使它们与任何其他Zope包都无关?

2 个答案:

答案 0 :(得分:8)

  • zc是“Zope Corporation”。
  • z3c是“Zope 3社区”,这个命名空间早已被“弃用”,即没有使用此命名空间创建新包。
  • collective指的是Plone Collective,一个用于Plone包的svn存储库,对贡献者持友好态度。它是新的通用Plone软件包的“默认”命名空间,现在已经很长一段时间不属于Plone核心。

同样感兴趣的是:

  • zope最初用于作为Zope 3一部分的软件包。现在很少用于新软件包。
  • Products,用于较旧的Zope2 / Plone包。所有Zope2产品都必须在Products目录中,因为之前有命名空间包。这是一个残余的遗留物。

答案 1 :(得分:1)

Stephan Richter和我在zope sprint上对一些软件包进行了原型设计,这些软件包并不真正适合zope软件包命名空间。这是我们开始使用z3c作为包名的时候。 这应该是指Lennart所说的zope 3社区。但是名称空间并没有被弃用。

可能问题是,如果有人愿意使用许可证提交者协议 他喜欢提交zope包存储库。我认为z3c和集体使用不同的许可证。

z3c repos是zope存储库的一部分,并使用与zope本身使用相同的许可证(ZPL)等。但这也意味着你需要成为使用它的zope贡献者。

顺便说一句, 使用z3c或相关存储库之外的集体可能是一个非常糟糕的ide。

此致 Roger Ineichen