Skip to content
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

Pipfile able to build in version 2018.05.18 but not in latest. #2894

Closed
Moliholy opened this issue Sep 28, 2018 · 7 comments
Closed

Pipfile able to build in version 2018.05.18 but not in latest. #2894

Moliholy opened this issue Sep 28, 2018 · 7 comments

Comments

@Moliholy
Copy link

@Moliholy Moliholy commented Sep 28, 2018

Issue description

In my company we've been for quite some time freezing pipenv to version 2018.05.18 because after upgrading dependencies couldn't be resolved. After some research I found the minimal Pipfile that provokes the error, which can be found below:

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[requires]
python_version = "3.5.2"

[packages]
django = ">=1.11, <2.0"
django-tastypie-oauth = {editable = true, ref = "master", git = "https://github.com/orcasgit/django-tastypie-oauth"}
django-tastypie = ">=0.14.0, <1.0.0"
django-oauth-toolkit = "<1.0.0"

When running with pipenv 2018.05.18 everything works fine, but with the latest version I have this error:

$ pipenv lock
Locking [dev-packages] dependencies...
Locking [packages] dependencies...

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
Could not find a version that matches django<2.0,==1.11.15,>=1.11,>=1.8,>=2.0 (from -r /var/folders/kp/kphh92w93890dzf4qp72xrvh0000gn/T/pipenv-_qlyg0sb-requirements/pipenv-jwhyow79-constraints.txt (line 5))
Tried: 1.1.3, 1.1.4, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.3, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.4.11, 1.4.12, 1.4.13, 1.4.14, 1.4.15, 1.4.16, 1.4.17, 1.4.18, 1.4.19, 1.4.20, 1.4.21, 1.4.22, 1.5, 1.5.1, 1.5.2, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.5.6, 1.5.7, 1.5.8, 1.5.8, 1.5.9, 1.5.10, 1.5.11, 1.5.12, 1.5.12, 1.6, 1.6, 1.6.1, 1.6.1, 1.6.2, 1.6.2, 1.6.3, 1.6.3, 1.6.4, 1.6.4, 1.6.5, 1.6.5, 1.6.6, 1.6.6, 1.6.7, 1.6.7, 1.6.8, 1.6.8, 1.6.9, 1.6.9, 1.6.10, 1.6.10, 1.6.11, 1.6.11, 1.7, 1.7, 1.7.1, 1.7.1, 1.7.2, 1.7.2, 1.7.3, 1.7.3, 1.7.4, 1.7.4, 1.7.5, 1.7.5, 1.7.6, 1.7.6, 1.7.7, 1.7.7, 1.7.8, 1.7.8, 1.7.9, 1.7.9, 1.7.10, 1.7.10, 1.7.11, 1.7.11, 1.8, 1.8, 1.8.1, 1.8.1, 1.8.2, 1.8.2, 1.8.3, 1.8.3, 1.8.4, 1.8.4, 1.8.5, 1.8.5, 1.8.6, 1.8.6, 1.8.7, 1.8.7, 1.8.8, 1.8.8, 1.8.9, 1.8.9, 1.8.10, 1.8.10, 1.8.11, 1.8.11, 1.8.12, 1.8.12, 1.8.13, 1.8.13, 1.8.14, 1.8.14, 1.8.15, 1.8.15, 1.8.16, 1.8.16, 1.8.17, 1.8.17, 1.8.18, 1.8.18, 1.8.19, 1.8.19, 1.9, 1.9, 1.9.1, 1.9.1, 1.9.2, 1.9.2, 1.9.3, 1.9.3, 1.9.4, 1.9.4, 1.9.5, 1.9.5, 1.9.6, 1.9.6, 1.9.7, 1.9.7, 1.9.8, 1.9.8, 1.9.9, 1.9.9, 1.9.10, 1.9.10, 1.9.11, 1.9.11, 1.9.12, 1.9.12, 1.9.13, 1.9.13, 1.10, 1.10, 1.10.1, 1.10.1, 1.10.2, 1.10.2, 1.10.3, 1.10.3, 1.10.4, 1.10.4, 1.10.5, 1.10.5, 1.10.6, 1.10.6, 1.10.7, 1.10.7, 1.10.8, 1.10.8, 1.11, 1.11, 1.11.1, 1.11.1, 1.11.2, 1.11.2, 1.11.3, 1.11.3, 1.11.4, 1.11.4, 1.11.5, 1.11.5, 1.11.6, 1.11.6, 1.11.7, 1.11.7, 1.11.8, 1.11.8, 1.11.9, 1.11.9, 1.11.10, 1.11.10, 1.11.11, 1.11.11, 1.11.12, 1.11.12, 1.11.13, 1.11.13, 1.11.14, 1.11.14, 1.11.15, 1.11.15, 2.0, 2.0, 2.0.1, 2.0.1, 2.0.2, 2.0.2, 2.0.3, 2.0.3, 2.0.4, 2.0.4, 2.0.5, 2.0.5, 2.0.6, 2.0.6, 2.0.7, 2.0.7, 2.0.8, 2.0.8, 2.1, 2.1, 2.1.1, 2.1.1
Skipped pre-versions: 1.8a1, 1.8b1, 1.8b2, 1.8rc1, 1.9a1, 1.9b1, 1.9rc1, 1.9rc2, 1.10a1, 1.10a1, 1.10b1, 1.10b1, 1.10rc1, 1.10rc1, 1.11a1, 1.11b1, 1.11rc1, 1.11rc1, 2.0a1, 2.0b1, 2.0rc1, 2.1a1, 2.1b1, 2.1rc1
There are incompatible versions in the resolved dependencies.
Expected result

To be able to lock dependencies as in version 2018.05.18.

Actual result

No dependencies locked.

Steps to replicate

Using the provided Pipfile switch from version 2018.05.18 to the latest and execute pipenv lock.


$ pipenv --support

Pipenv version: '2018.7.1'

Pipenv location: '/usr/local/Cellar/pyenv/1.2.3/versions/3.5.2/lib/python3.5/site-packages/pipenv'

Python location: '/usr/local/Cellar/pyenv/1.2.3/versions/3.5.2/bin/python3.5'

Other Python installations in PATH:

  • 2.7: /usr/local/bin/python2.7

  • 2.7: /usr/local/Cellar/pyenv/1.2.3/shims/python2.7

  • 2.7: /usr/local/bin/python2.7

  • 2.7: /usr/bin/python2.7

  • 3.5: /usr/local/Cellar/pyenv/1.2.3/versions/3.5.2/bin/python3.5m

  • 3.5: /usr/local/Cellar/pyenv/1.2.3/versions/3.5.2/bin/python3.5

  • 3.5: /usr/local/Cellar/pyenv/1.2.3/shims/python3.5

  • 3.6: /usr/local/Cellar/pyenv/1.2.3/shims/python3.6

  • 3.5.2: /usr/local/Cellar/pyenv/1.2.3/versions/3.5.2/bin/python

  • 3.5.2: /usr/local/Cellar/pyenv/1.2.3/shims/python

  • 2.7.14: /usr/local/bin/python

  • 2.7.10: /usr/bin/python

  • None: /usr/local/Cellar/pyenv/1.2.3/shims/python2

  • 2.7.14: /usr/local/bin/python2

  • 3.5.2: /usr/local/Cellar/pyenv/1.2.3/versions/3.5.2/bin/python3

  • 3.5.2: /usr/local/Cellar/pyenv/1.2.3/shims/python3

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.5.2',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '17.7.0',
 'platform_system': 'Darwin',
 'platform_version': 'Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT '
                     '2018; root:xnu-4570.71.2~1/RELEASE_X86_64',
 'python_full_version': '3.5.2',
 'python_version': '3.5',
 'sys_platform': 'darwin'}

System environment variables:

  • HOME
  • LC_CTYPE
  • PWD
  • PYTHONDONTWRITEBYTECODE
  • LOGNAME
  • LESS
  • PYENV_ROOT
  • PYENV_SHELL
  • PATH
  • XPC_SERVICE_NAME
  • NVM_BIN
  • NVM_DIR
  • COLORTERM
  • USER
  • SHELL
  • TERM
  • TERM_PROGRAM_VERSION
  • TERM_PROGRAM
  • ITERM_PROFILE
  • COLORFGBG
  • SHLVL
  • PYENV_HOOK_PATH
  • ZSH
  • XPC_FLAGS
  • Apple_PubSub_Socket_Render
  • LANG
  • ITERM_SESSION_ID
  • LSCOLORS
  • TERM_SESSION_ID
  • PYENV_DIR
  • PYENV_VERSION
  • TMPDIR
  • PIP_PYTHON_PATH
  • LC_ALL
  • GEM_HOME
  • SSH_AUTH_SOCK
  • PAGER
  • __CF_USER_TEXT_ENCODING
  • NVM_CD_FLAGS

Pipenv–specific environment variables:

Debug–specific environment variables:

  • PATH: /usr/local/Cellar/pyenv/1.2.3/versions/3.5.2/bin:/usr/local/Cellar/pyenv/1.2.4/libexec:/usr/local/Cellar/pyenv/1.2.3/plugins/python-build/bin:/Users/molina/.yarn/bin:/Users/molina/.config/yarn/global/node_modules/.bin:/Users/molina/.gem/bin:/usr/local/Cellar/pyenv/1.2.3/shims:/Users/molina/.nvm/versions/node/v9.5.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/MacGPG2/bin
  • SHELL: /bin/zsh
  • LANG: en_US.UTF-8
  • PWD: /Users/molina/workspace/bity-backend

Contents of Pipfile ('/Users/molina/workspace/bity-backend/Pipfile'):

[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"

[requires]
python_version = "3.5.2"

[packages]
django = ">=1.11, <2.0"
django-tastypie-oauth = {editable = true, ref = "master", git = "https://github.com/orcasgit/django-tastypie-oauth"}
django-tastypie = ">=0.14.0, <1.0.0"
django-oauth-toolkit = "<1.0.0"

Contents of Pipfile.lock ('/Users/molina/workspace/bity-backend/Pipfile.lock'):

{
    "_meta": {
        "hash": {
            "sha256": "9127b5d027adaced4b47274103a9d77c62c43bcdda6842c9c6195e986355363a"
        },
        "pipfile-spec": 6,
        "requires": {
            "python_version": "3.5.2"
        },
        "sources": [
            {
                "name": "pypi",
                "url": "https://pypi.python.org/simple",
                "verify_ssl": true
            }
        ]
    },
    "default": {
        "django": {
            "hashes": [
                "sha256:8176ac7985fe6737ce3d6b2531b4a2453cb7c3377c9db00bacb2b3320f4a1311",
                "sha256:b18235d82426f09733d2de9910cee975cf52ff05e5f836681eb957d105a05a40"
            ],
            "index": "pypi",
            "version": "==1.11.15"
        },
        "django-braces": {
            "hashes": [
                "sha256:a457d74ea29478123c0c4652272681b3cea0bf1232187fd9f9b6f1d97d32a890",
                "sha256:ba68e98b817c6f01d71d10849f359979617b3fe4cefb7f289adefddced092ddc"
            ],
            "version": "==1.13.0"
        },
        "django-oauth-toolkit": {
            "hashes": [
                "sha256:4e50e6e4ba59bc09502ee39d7e7ad8f14e1fe1e15f93e7f4422791c9ecc3b1e0",
                "sha256:7b368b6440c7c0bb5f9fe00e6a81e7bcee46d399e7f831f91e9cb15afcb77770"
            ],
            "index": "pypi",
            "version": "==0.12.0"
        },
        "django-tastypie": {
            "hashes": [
                "sha256:a3a2413510009649e0eac885ead96891c783ced788fd94231dc2f72b7a1b4c04"
            ],
            "index": "pypi",
            "version": "==0.14.2"
        },
        "django-tastypie-oauth": {
            "editable": true,
            "git": "https://github.com/orcasgit/django-tastypie-oauth",
            "ref": "master"
        },
        "oauthlib": {
            "hashes": [
                "sha256:132ad46df25e53a84b33f1fd43f80e973cda2cb018cc0168d7d0c8c4d5cef9b5"
            ],
            "version": "==2.0.1"
        },
        "python-dateutil": {
            "hashes": [
                "sha256:1adb80e7a782c12e52ef9a8182bebeb73f1d7e24e374397af06fb4956c8dc5c0",
                "sha256:e27001de32f627c22380a688bcc43ce83504a7bc5da472209b4c70f02829f0b8"
            ],
            "version": "==2.7.3"
        },
        "python-mimeparse": {
            "hashes": [
                "sha256:76e4b03d700a641fd7761d3cd4fdbbdcd787eade1ebfac43f877016328334f78",
                "sha256:a295f03ff20341491bfe4717a39cd0a8cc9afad619ba44b77e86b0ab8a2b8282"
            ],
            "version": "==1.6.0"
        },
        "pytz": {
            "hashes": [
                "sha256:a061aa0a9e06881eb8b3b2b43f05b9439d6583c206d0a6c340ff72a7b6669053",
                "sha256:ffb9ef1de172603304d9d2819af6f5ece76f2e85ec10692a524dd876e72bf277"
            ],
            "version": "==2018.5"
        },
        "six": {
            "hashes": [
                "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9",
                "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb"
            ],
            "version": "==1.11.0"
        }
    },
    "develop": {}
}
@timworx
Copy link
Contributor

@timworx timworx commented Sep 29, 2018

I have a very similar issue.

I'm trying to install a package (python-slackclient) that uses a requirements.txt file with:

 --index-url https://pypi.python.org/simple/

I'm now getting an error similar to above, that it is failing to resolve a version for prompt-toolkit. Checking pipenv graph there is no issue with versions interfering.
It is just being raised with https://pypi.python.org/simple/ being in the mix.
Interestingly, prompt-toolkit is not a dependency of python-slackclient.

My error:

Could not find a version that matches prompt-toolkit<2.0.0,<2.1.0,==2.0.4,>=1.0.15,>=2.0.0
Tried: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.8, 0.9, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.23, 0.25, 0.26, 0.28, 0.30, 0.31, 0.32, 0.32, 0.32, 0.33, 0.33, 0.33, 0.34, 0.34, 0.34, 0.35, 0.35, 0.35, 0.36, 0.36, 0.36, 0.37, 0.37, 0.37, 0.38, 0.38, 0.38, 0.39, 0.39, 0.39, 0.40, 0.40, 0.40, 0.41, 0.41, 0.41, 0.42, 0.42, 0.42, 0.43, 0.43, 0.43, 0.44, 0.44, 0.44, 0.45, 0.45, 0.45, 0.46, 0.46, 0.46, 0.47, 0.47, 0.47, 0.48, 0.48, 0.48, 0.49, 0.49, 0.49, 0.50, 0.50, 0.50, 0.51, 0.51, 0.51, 0.52, 0.52, 0.52, 0.53, 0.53, 0.53, 0.54, 0.54, 0.54, 0.55, 0.55, 0.55, 0.56, 0.56, 0.56, 0.57, 0.57, 0.57, 0.58, 0.58, 0.58, 0.59, 0.59, 0.59, 0.60, 0.60, 0.60, 1.0.0, 1.0.0, 1.0.0, 1.0.1, 1.0.1, 1.0.1, 1.0.2, 1.0.2, 1.0.2, 1.0.3, 1.0.3, 1.0.3, 1.0.4, 1.0.4, 1.0.4, 1.0.5, 1.0.5, 1.0.5, 1.0.6, 1.0.6, 1.0.6, 1.0.7, 1.0.7, 1.0.7, 1.0.8,
1.0.8, 1.0.8, 1.0.9, 1.0.9, 1.0.9, 1.0.10, 1.0.10, 1.0.10, 1.0.13, 1.0.13, 1.0.13, 1.0.14, 1.0.14, 1.0.14, 1.0.15, 1.0.15, 1.0.15, 2.0.1, 2.0.1, 2.0.1, 2.0.2, 2.0.2, 2.0.2, 2.0.3, 2.0.3, 2.0.3, 2.0.4, 2.0.4, 2.0.4
There are incompatible versions in the resolved dependencies.

Loading

@jonasfs
Copy link

@jonasfs jonasfs commented Oct 4, 2018

Same for me, but with django-filter:

Could not find a version that matches django-filter==2.0.0,~=1.0
(from -r /tmp/pipenv-psdh1shq-requirements/pipenv-xy_t37w6-constraints.txt (line 8))
Tried: 0.1.0, 0.2.0, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.6, 0.6, 0.7, 0.7, 0.8, 0.9.0,
0.9.0, 0.9.1, 0.9.1, 0.9.2, 0.9.2, 0.10.0, 0.10.0, 0.11.0, 0.11.0, 0.12.0, 0.13.0,
0.13.0, 0.14.0, 0.14.0, 0.15.0, 0.15.0, 0.15.1, 0.15.1, 0.15.2, 0.15.2, 0.15.3,
0.15.3, 1.0.0, 1.0.0, 1.0.1, 1.0.1, 1.0.2, 1.0.2, 1.0.3, 1.0.3, 1.0.4, 1.0.4,
1.1.0, 1.1.0, 2.0.0, 2.0.0
Skipped pre-versions: 0.6a1, 0.6a1, 2.0.0.dev1, 2.0.0.dev

Loading

@timworx
Copy link
Contributor

@timworx timworx commented Oct 4, 2018

@jonasfs to clarify: when you run pipenv graph you can verify that there aren't actually two conflicting dependencies, right? i.e. You don't have both 2.0.0 and ~=1.0 in your dep graph.

Loading

@jonasfs
Copy link

@jonasfs jonasfs commented Oct 4, 2018

@timworx Thats the first time I run into this so I apologize if I'm missing something. Here's what pipenv graph tells me after running pipenv install --skip-lock:

beautifulsoup4==4.6.3
django-cors-headers==2.4.0
django-model-utils==3.1.2
  - Django [required: >=1.8, installed: 2.1.2]
    - pytz [required: Any, installed: 2018.5]
djangorestframework-filters==0.10.2.post0
  - django-filter [required: ~=1.0, installed: 1.1.0]
  - djangorestframework [required: Any, installed: 3.8.2]
flake8==3.5.0
  - mccabe [required: >=0.6.0,<0.7.0, installed: 0.6.1]
  - pycodestyle [required: >=2.0.0,<2.4.0, installed: 2.3.1]
  - pyflakes [required: >=1.5.0,<1.7.0, installed: 1.6.0]
ftfy==5.5.0
  - wcwidth [required: Any, installed: 0.1.7]
mock==2.0.0
  - pbr [required: >=0.11, installed: 4.3.0]
  - six [required: >=1.9, installed: 1.11.0]
pdf2image==1.0.0
  - pillow [required: Any, installed: 5.3.0]
PyPDF2==1.26.0
responses==0.9.0
  - cookies [required: Any, installed: 2.2.1]
  - requests [required: >=2.0, installed: 2.19.1]
    - certifi [required: >=2017.4.17, installed: 2018.8.24]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.8, installed: 2.7]
    - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
  - six [required: Any, installed: 1.11.0]

Loading

@timworx
Copy link
Contributor

@timworx timworx commented Oct 5, 2018

@timworx Thats the first time I run into this so I apologize if I'm missing something. Here's what pipenv graph tells me after running pipenv install --skip-lock:

Perfect. So if we go back to your error and look at the first line:

Could not find a version that matches django-filter==2.0.0,~=1.0

It's saying that it can't match the dependency requirement of both django-filter==2.0.0 and django-filter~=1.0`. No version could possibly match both, it's conflicting.

I wanted to see your pipenv graph output to confirm that the graph doesn't show the conflict, to make sure it matches the same issue I'm having.

With that said, I have no idea why it's happening, I haven't had a chance to familiarize myself with the pipenv source.

Loading

techalchemy added a commit that referenced this issue Oct 7, 2018
- Fixes #2499
- Fixes #2529
- Fixes #2589
- Fixes #2666
- Fixes #2767
- Fixes #2785
- Fixes #2795
- Fixes #2801
- Fixes #2802
- Fixes #2824
- Fixes #2862
- Fixes #2867
- Fixes #2879
- Fixes #2880
- Fixes #2894
- Fixes #2902
- Fixes #2924

Signed-off-by: Dan Ryan <dan@danryan.co>
techalchemy added a commit that referenced this issue Oct 7, 2018
- Fixes #2499
- Fixes #2529
- Fixes #2589
- Fixes #2666
- Fixes #2767
- Fixes #2785
- Fixes #2795
- Fixes #2801
- Fixes #2802
- Fixes #2824
- Fixes #2862
- Fixes #2867
- Fixes #2879
- Fixes #2880
- Fixes #2894
- Fixes #2902
- Fixes #2924

Signed-off-by: Dan Ryan <dan@danryan.co>
@Moliholy
Copy link
Author

@Moliholy Moliholy commented Nov 15, 2018

There has been a regression in version 2018.11.14. Now it installs django 2.1.3 again. The difference is that this time the command succeeds with no error nor warnings at all. However the installed version is not the correct one, so constraints are silently ignored.

Loading

@techalchemy
Copy link
Member

@techalchemy techalchemy commented Nov 15, 2018

If your editable package has a dependency it will take precedence until someone can implement conditional package dependency notation. You should move the editable package to the dev section or possibly changing the order would help, not 100% sure about that one

Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

4 participants