-
-
Notifications
You must be signed in to change notification settings - Fork 612
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Could not find a version that matches django==1.4,==1.8.4,>=1.3,>=1.4,>=1.5 #366
Comments
What do you mean with "Should download all requirements"? You can have only one version of a dependency installed. You have two packages that pin specific different versions, there is no possible way of satisfying this. It is recommended for packages that are used by other packages to use less restrictive versions specifiers. See also: http://python-packaging-user-guide.readthedocs.io/en/latest/distributing/#install-requires |
I meant should download package A and package B. I was hoping in such a case pip-compile would ask the user which version to chose. |
If A and B can both work properly with some version of Django, it is clear that the requirements pinned by A and B are too restrictive. But I can imagine that these kind of conflicts aren't that uncommon and sometimes you just don't have the influence to make maintainers of the conflicting packages change the requirements even if you can show that the change in requirements won't break the package. Therefore I think that having pip-compile ask how to resolve this (choose version manually, skip, abort), would be a nice addition. |
@zeebonk is correct here. This question has occasionally popped up here, perhaps I should put it in a FAQ of some kind. The purpose of pip-tools is to expose these issues with dependencies. If you don't use pip, you'll get an arbitrary version installed, which leads to undefined behaviour in production if you're unaware of which version you're getting. In this case, package A explicitly declares to be incompatible with any version of Django other than 1.4. Package B ditto for 1.8.7. There is no version of Django that can ever match these version requirements. Picking either version will just lead to trouble with the other package. At the core, this problem needs to be solved by reaching out to the package A and B maintainers and asking them to remove the explicit pinning of dependencies, which is almost always a bad idea. What is typically really meant by |
Fair enough. I guess I'd have to contact the the third party owners to update their pinned versions or atleast use |
Describe the issue briefly here.
Steps to replicate
Expected result
Should download all requirements.
...
Actual result
...
The text was updated successfully, but these errors were encountered: