如何让zc.sourcerelease使用本地egg缓存?

时间:2012-09-24 12:12:19

标签: python packaging buildout

我看了this video并尝试使用源发布工具。

首先,这是文档中不确定的部分:

  

要创建源版本,只需运行buildout-source-release   脚本,传递文件URL或颠覆URL [3]和名称   要使用的配置文件。文件URL对测试很有用,可以   与非颠覆源代码控制系统一起使用。

他们的意思是什么文件网址?项目根目录?

其次,另一个参数应该是buildout.cfg的路径。当我在项目中使用通常的buildout.cfg时,sourcerelease重新构建整个项目。如果它一直崩溃,bin/buildout-source-release消失了,我必须再次运行bin/buildout。这是可以避免的吗?

第三,buildout-source-release下载包(即使它们已固定,且这些版本在~/.buildout中)。我还使用buildout.cfg中指定的自定义包缓存:

[buildout]
index = http://pypi.*****.com

b-s-r也忽略了它!当然,在我拥有的大约50个软件包中,有些软件目前不可用(通常Scipy服务器已关闭)。

如何重复使用本地包源?

1 个答案:

答案 0 :(得分:1)

该脚本通过将提供的Subversion URL签出到临时目录中,从头开始创建完整分发,然后在该目录中运行buildout配置文件,由第二个参数命名。

或者,它可以只复制文件URL指向的目录结构,而不是Subversion存储库;后者是一种权宜之计,不仅仅支持SVN存储库。例如,您可以创建Git项目的工作副本,然后使用file:///path/to/git/wc/ URL指向它。

该脚本构建了一个完全独立的buildout副本。为了做到这一点,它必须创建一个缓存并通过让配方完成它们来填充它。稍后,安装脚本会重新使用该缓存来运行安装。

此外,食谱使用自己的方式检查缓存和下载资源,buildout不代表食谱维护它。因此,目前没有适当的机制来确定脚本是否可以从现有缓存中重用任何内容。