指定优先级构建.cfg去拿鸡蛋

2024-10-03 06:20:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一种方法可以在看鸡蛋之前先指定从哪里取鸡蛋pypi.python.org/在

例如:

[buildout]
find-links:
    /home/eggs/

eggs =
    foo
    bar

如果pypi上的foobar包的版本号高于位于/home/eggs/的我的包foo,buildout将尝试从pypi下载该包。我的foo和pypifoo完全不同,这是一个问题。在

我找不到使用名称空间或类似的方法,所以我想应该有一种方法来强制buildout使用某些包而不是其他包。在

你知道怎么解决这个问题吗?在

干杯, 马丁


Tags: 方法org名称pypihomefoo版本号buildout
1条回答
网友
1楼 · 发布于 2024-10-03 06:20:59

您应该将鸡蛋固定到特定版本,这样您就可以控制每次运行构建时使用的鸡蛋:

[buildout]
versions = versions

[versions]
foo = 1.0
bar = 1.1
spam = 1.0b2

[buildout]部分中的versions选项允许您命名一个包含包的版本pin的部分。在本例中,我将该部分命名为[versions],但是您可以使用任何您喜欢的名称;想象一下,如果您将使用[release1]和{}部分,versions选项指向其中任何一个,以选择特定的版本管脚组合。在

当一个egg被固定到这样的特定版本时,只有该版本的egg才能满足此构建的需求。如果你的find链接指向一个包含该版本的位置,那么鸡蛋将从那里下载,而不是从PyPI下载。在

另外还有两个构建特性可以帮助管理版本管脚。第一个选项是一个名为allow-picked-versions的默认构建选项:

^{pr2}$

默认设置是true,这意味着buildout可以为您选择一个满足所有需求的版本。当您将此设置为false时,对于任何没有版本pin构建的egg,都将抛出一个错误。用这个来检测你是否还需要固定鸡蛋。在

另一个选择是使用buildout.dumppickedversions扩展来构建:

[buildout]
extensions = buildout.dumppickedversions

当像这样添加到构建中时,每次运行构建时,都会在末尾列出所选版本的列表,对于未固定的任何鸡蛋,其格式直接适合包含在构建配置中。这样你就可以让buildout找出要使用的鸡蛋,然后把它们固定在那些版本上。在

相关问题 更多 >