You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ pipenv --version
pipenv, version 2018.7.1
$ pip -V
pip 18.0 from /Users/ben/.pyenv/versions/3.6.6/lib/python3.6/site-packages/pip (python 3.6)
My case
I have two projects that use botocore, one through aiobotocore[boto3] and another as boto3 directly. (On a practical note, AWS is being way too aggressive in their version constraints. But this is a deficiency in the solver all the same.)
When pipenv lock --verbose runs, I see:
ROUND 1
Current constraints:
engine>=1.1.4 (from -r /var/folders/vg/g4hqzfy162v08q1nsttnrjjh0000gn/T/pipenv-8vlq_0yh-requirements/pipenv-k13kkjyv-constraints.txt (line 4))
tob-utils>=1.1.2 (from -r /var/folders/vg/g4hqzfy162v08q1nsttnrjjh0000gn/T/pipenv-8vlq_0yh-requirements/pipenv-k13kkjyv-constraints.txt (line 5))
Finding the best candidates:
found candidate engine==1.1.4.3 (constraint was >=1.1.4)
...
found candidate tob-utils==1.1.2.0 (constraint was >=1.1.2)
engine==1.1.4.3 requires aiobotocore[boto3], aiohttp>=3.3.1, async-timeout<4.0,>=3.0, attrs, boto3==1.7.58; extra == "boto3", botocore<1.10.59,>=1.10.58, chardet<4.0,>=2.0, docutils>=0.10, engine==1.1.4.3, idna-ssl>=1.0, idna>=2.0, jmespath<1.0.0,>=0.7.1, multidict<5.0,>=4.0, numpy, python-dateutil<3.0.0,>=2.1; python_version >= "2.7", s3transfer<0.2.0,>=0.1.10, simplejson, six>=1.5, wrapt>=1.10.10, yarl<2.0,>=1.0
tob-utils==1.1.2.0 requires boto3>=1.4.0, botocore<1.11.0,>=1.10.75, click, docutils>=0.10, jmespath<1.0.0,>=0.7.1, python-dateutil<3.0.0,>=2.1; python_version >= "2.7", s3transfer<0.2.0,>=0.1.10, six>=1.5, tob-utils==1.1.2.0
When you look at those, you can see that pipenv has already set conflicting constraints on botocore, but those constraints aren't in either library; the install_requires only specify the top-level constraints:
Issue description
Running
pipenv lock --verbose
, contradictory dependencies are locked in the first round, preventing any solution.Possible related: #2720 .
Relevant versions:
My case
I have two projects that use botocore, one through
aiobotocore[boto3]
and another asboto3
directly. (On a practical note, AWS is being way too aggressive in their version constraints. But this is a deficiency in the solver all the same.)When
pipenv lock --verbose
runs, I see:When you look at those, you can see that pipenv has already set conflicting constraints on botocore, but those constraints aren't in either library; the install_requires only specify the top-level constraints:
Pipenv lock appears to be adding dependencies too aggressively in the first round.
Minimal case
This Pipfile will fail:
Expected result
For the minimal case, a valid solution would be constrained according to aiobotocore (also note the extra_requires)
Actual result
For the minimal test case, with some editing:
At this point,
boto3==1.7.75
andboto3==1.7.58
have been specified and a match is impossible.Steps to replicate
Run
pipfile lock --verbose
on the above Pipfile.The text was updated successfully, but these errors were encountered: