Recording where requirements come from to debug version conflicts
Before you'd get a simple output like: Installing django. While: Installing django. Error: The requirement ('Django>=1.7') is not allowed by your [versions] constraint (1.6.6) ... which would mean you'd have to grep in all your requirements' sub-requirements which package actually requires the offending "django>=1.7" With this change you'll get a much more helpful output right before the error: Installing django. version and requirements information containing django: [versions] constraint on django: 1.6.6 Base installation request: 'sso', 'djangorecipe' Requirement of djangorecipe==1.10: Django Requirement of djangorecipe==1.10: zc.recipe.egg Requirement of djangorecipe==1.10: zc.buildout Requirement of sso: django-nose Requirement of sso: django-mama-cas Requirement of sso: django-debug-toolbar Requirement of sso: django-auth-ldap Requirement of sso: Django<1.7,>=1.4.2 Requirement of lizard-auth-server: django-nose Requirement of lizard-auth-server: django-extensions Requirement of lizard-auth-server: Django<1.7,>=1.6 Requirement of django-nose: Django>=1.2 Requirement of django-nose: nose>=1.2.1 Requirement of django-mama-cas: requests==1.1.0 Requirement of django-debug-toolbar: sqlparse Requirement of django-debug-toolbar: Django>=1.7 Requirement of django-auth-ldap: python-ldap>=2.0 Requirement of django-auth-ldap: django>=1.1 Requirement of translations: Django>=1.4 Requirement of django-extensions: six>=1.2 While: Installing django. Error: The requirement ('Django>=1.7') is not allowed by your [versions] constraint (1.6.6) This makes it much easier to spot the cause (in this case django-debug-toolbar). There *are* some unrelated packages in here because I'm doing a textual comparison. The advantage is that it is very robust. And extracting the right package name from requirements without messing things up is harder to get right and takes more code.
Showing
Please register or sign in to comment