2

我越来越多地使用 zc.buildout 并且遇到了一些我有解决方案的食谱问题。

这些包通常分为几类:

  1. 没有明显链接到项目站点的包
  2. 包含指向免费托管服务(如 github 或 google 代码)的链接的软件包

设置 #2 比 #1 好,但也好不了多少,因为对于这两种情况,我必须等待开发人员应用这些更改,然后才能使用更新的包构建。

到目前为止,我一直在做的基本上是分叉包,给它一个不同的名称并将其上传到 pypi,但这会造成冗余,我认为只会加剧问题。

一种可能的解决方案是使用个人服务器包索引,我将在其中上传代码的更新版本,直到开发人员更新他/她的包。这是可行的,但它增加了我希望避免的额外工作。

有一个更好的方法吗?

谢谢

4

1 回答 1

3

您的“上传我的个性化分叉”解决方案听起来是个糟糕的主意。您应该尝试http://pypi.python.org/pypi/collective.recipe.patch,它可以让您自动修补鸡蛋。尝试设置本地 PyPi 兼容的索引。我认为您还可以指向find-links =一个目录(不仅仅是一个http://url),其中包含您个人版本的那些“几乎足够好”的软件包。您还可以尝试修补有缺陷的包,或利用 Zope 组件模型覆盖新包中的必要位。通常真正的作者会列在包源代码的某个地方,即使他们决定不在 PyPi 上显示他们的名字。

我一直在尝试减少我使用的自定义版本的包的数量。通常我通过将 src/some.project 链接到我对该项目代码的检出来使用定制的包作为开发鸡蛋。每次编辑这些软件包时,我都不必构建新的 egg 或重新安装。

构建中使用的许多 Python 包都托管在 Plone 的 svn 集合中。获得对该存储库的提交访问权限相对容易。

于 2009-09-23T21:27:52.600 回答