How do you know which python egg applies the constraint in buildout?

For example, the following is built using 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 five.localsitemanager>2.0dev does not seem to be implemented using grokcore.annotation (see https://github.com/zopefoundation/grokcore.annotation/blob/master/setup.py ). But how do you know which egg actually applies this

+7
python buildout
source share
1 answer

I know this is a very old question, but yesterday I had the same problem and my colleague found a way to solve the problem. So I thought I could post it here.

All of your assembly eggs are located either in the eggs folder in your project, or in the .buildout folder in your home folder, including development eggs. In each egg, you will find a requires.txt file with egg requirements. This means that you can find find / grep in the .buildout/eggs folder for a specific restriction to find out which package executes it.

So, in your case, I suggest you go to the eggs directory (in my case ~/.buildout/eggs ), and then do:

 find .|grep requires.txt|xargs grep 2.0dev 

This should find the egg providing the restriction.

In my case, I upgraded to Django 1.7 and there was one package with the restriction of 'Django >= 1.4, < 1.7' . Thus, executing find .|grep requires.txt|xargs grep 1.7 detected a problematic egg.

+6
source share

All Articles