Requirements.txt greater than equal to and then less than?
Question:
I have this line in my requirements file
django>=1.10,<1.11
Does that mean I need to have Django version >= 1.10
and then less than 1.11
?
Answers:
Yes. The pip manual [doc] has a section on the format of "requirement specifiers". These are documented in PEP-508 [pep] and PEP-440 [pep]:
The comparison operator determines the kind of version clause:
~=
: Compatible release clause
==
: Version matching clause
!=
: Version exclusion clause
<=
, >=
: Inclusive ordered comparison clause
<
, >
: Exclusive ordered comparison clause
===
: Arbitrary equality clause.
The comma (","
) is equivalent to a logical and operator: a candidate version must match all given version clauses in order to match the specifier as a whole.
So in your case it means that the Django version is 1.10
or higher and not 1.11
or higher (so 1.10
is fine, 1.10.1
, as well, but not 1.11
, 1.11.1
, or 2.0.1
).
I have this line in my requirements file
django>=1.10,<1.11
Does that mean I need to have Django version >= 1.10
and then less than 1.11
?
Yes. The pip manual [doc] has a section on the format of "requirement specifiers". These are documented in PEP-508 [pep] and PEP-440 [pep]:
The comparison operator determines the kind of version clause:
~=
: Compatible release clause==
: Version matching clause!=
: Version exclusion clause<=
,>=
: Inclusive ordered comparison clause<
,>
: Exclusive ordered comparison clause===
: Arbitrary equality clause.The comma (
","
) is equivalent to a logical and operator: a candidate version must match all given version clauses in order to match the specifier as a whole.
So in your case it means that the Django version is 1.10
or higher and not 1.11
or higher (so 1.10
is fine, 1.10.1
, as well, but not 1.11
, 1.11.1
, or 2.0.1
).