how do you know which python egg is enforcing a constraint in buildout?
buildout, python
Solution
I know this is a very old question, but I had the same problem yesterday and my colleague found a way to solve the problem. So I thought I might as well post it here.
All your buildout eggs are either in an `eggs` folder in your project or in a `.buildout` folder in your home folder, including development eggs. In each egg you'll find a `requires.txt` file with the requirements for the egg. This means you can do a find/grep on the `.buildout/eggs` folder for the specific constraint to find out which package is enforcing it.
So in your case I would suggest you go to the eggs directory (in my case `~/.buildout/eggs`) and then do:
find .|grep requires.txt|xargs grep 2.0dev
That should find the egg that's enforcing the constraint.
In my case I was upgrading to Django 1.7 and there was one package with the constraint `'Django >= 1.4, < 1.7'`. So executing `find .|grep requires.txt|xargs grep 1.7` found the problematic egg.
Problem
For instance the following is built with `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 ``` The constraint `five.localsitemanager>2.0dev` does not seem to be enforced by grokcore.annotation (see https://github.com/zopefoundation/grokcore.annotation/blob/master/setup.py) But how do I find out which egg is actually enforcing this?