我想知道是否有办法在查看pypi.python.org /
之前指定鸡蛋应该从哪里取出例如:
[buildout]
find-links:
/home/eggs/
eggs =
foo
bar
如果pypi上的foo
或bar
个软件包的版本号高于我foo
中名为/home/eggs/
的软件包,则buildout会尝试下载该软件包来自pypi而不是。我的foo
和pypi foo
完全不同,这是一个问题。
我找不到使用命名空间或类似方法的方法,所以我想应该有办法强制buildout使用某些包而不是其他包。
知道如何解决这个问题吗?
干杯, 马丁
答案 0 :(得分:4)
您应该将鸡蛋固定到特定版本,这样您就可以控制每次运行构建时使用的鸡蛋:
[buildout]
versions = versions
[versions]
foo = 1.0
bar = 1.1
spam = 1.0b2
versions
部分中的[buildout]
选项可让您为包含版本引脚的部分命名。在这个例子中,我将该部分命名为[versions]
,但您可以使用您喜欢的任何名称;想象一下,如果你要[release1]
和[release2]
部分,versions
选项指向其中任何一个选择版本引脚的特定组合。
当鸡蛋被固定到这样的特定版本时,只有那个版本的鸡蛋才能满足这个构建的要求。如果您的find-links指向包含该版本的位置,那么将从那里下载egg,而不是从PyPI下载。
还有2个可用于管理版本引脚的构建功能。第一个是名为allow-picked-versions
的默认构建选项:
[buildout]
allow-picked-versions = false
默认设置为true
,这意味着buildout可以为您选择一个满足所有要求的版本。当您将其设置为false
时,对于没有版本的任何鸡蛋,pin buildout会抛出错误。用这个来检测你是否需要确定鸡蛋。
另一种选择是使用buildout.dumppickedversions扩展来构建:
[buildout]
extensions = buildout.dumppickedversions
当你像这样添加到你的buildout时,每次你运行你的buildout时,最后都会列出一个已挑选版本的列表,对于任何没有固定的egg,都会以一种直接适合你的buildout配置的格式。这样你就可以让buildout找出要使用的蛋,然后将它们固定到那些版本。