April 15, 2015
3:49 p.m.
level 0 A A level 1 1.4<= C
level 0 B B level 1 1.6<= C <1.7
pip manages to download version 1.8 of C(Django) using A's requirement, but never even warns us that the B requirement of C was violated. Surely even in the absence of a resolution pip could raise a warning at the end.
agreed on the warning, but there is a documented workaround for this, that is to put the desired constraint for C at level 0 (i.e. in the install args or in your requirements file) see case #2 here https://pip.pypa.io/en/latest/user_guide.html#requirements-files