例如,以下内容是使用bin/buildout -Nvv
...
Getting required 'grokcore.component>=2.5'
required by five.grok 1.3.2.
required by grokcore.viewlet 1.11.
Picked: grokcore.component = 2.5
Getting required 'grokcore.annotation'
required by five.grok 1.3.2.
Picked: grokcore.annotation = 1.3
The constraint, 0.4, is not consistent with the requirement, 'five.localsitemanager>2.0dev'.
While:
Installing instance.
Error: Bad constraint 0.4 five.localsitemanager>2.0dev
约束five.localsitemanager>2.0dev
似乎没有被grokcore.annotation强制执行(请参阅https://github.com/zopefoundation/grokcore.annotation/blob/master/setup.py)但是如何找出实际执行此操作的鸡蛋?
答案 0 :(得分:6)
我知道这是一个非常古老的问题,但昨天我遇到了同样的问题,my colleague找到了解决问题的方法。所以我想我也可以在这里发布它。
您的所有buildout鸡蛋都位于项目的eggs
文件夹中或主文件夹中的.buildout
文件夹中,包括开发鸡蛋。在每个鸡蛋中,您将找到一个requires.txt
文件,其中包含鸡蛋的要求。这意味着您可以在.buildout/eggs
文件夹上查找特定约束的查找/ grep,以找出正在执行它的包。
所以在你的情况下我会建议你去egg目录(在我的情况下是~/.buildout/eggs
),然后做:
find .|grep requires.txt|xargs grep 2.0dev
那应该找到强制执行约束的蛋。
在我的情况下,我正在升级到Django 1.7,并且有一个包含约束'Django >= 1.4, < 1.7'
的包。因此执行find .|grep requires.txt|xargs grep 1.7
发现了有问题的鸡蛋。