https://pantsbuild.org/ logo
#general
Title
# general
e

enough-analyst-54434

05/11/2022, 2:08 PM
@flat-summer-8204 I think I still have done a poor job of making this clear. The issue will have nothing to do with local interpreters. The lock process Pants uses only considers 2 things: 1.) What are the interpreter constraints you specify, via Pants configuration. - The lock process will follow the rule that all dependencies locked must work with every interpreter on any machine implied by these constraints. 2.) What is the compatibility of the distribution currently being looked at when attempting to lock (say "requests" or "A"). It must be compatible with each and every interpreter implied by 1. So, If your Pants specified repo interpreter constraints are
==3.7.*
*(That says all locked dependencies must work for all possible Python 3.7 interpreters), and the lock process comes across a needed dependency "A" that only works for
>=3.7.1
, then that dependency conflicts with criteria #1. You said the repo should work for
==3.7.*
and
3.7.0
is not a subset of
>=3.7.1
since
==3.7.*
contains
3.7.0
and
>=3.7.1
does not. In other words, the lock fails since Pants (Pex really), sees it cannot meet the demand you placed in 1 of creating a lock that works for every possible `==3.7.` interpreter. It fails for the
3.7.0
case in particular for dependency "A".