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

Spyder won't install with pip's new dependency solver on Python3.9 (ERROR: Requested decorator 4.0.8, (from ipython>=4.0->spyder) has different version in metadata: '4.0.7') #14365

Closed
4 of 10 tasks
hwalinga opened this issue Dec 4, 2020 · 5 comments

Comments

@hwalinga
Copy link

hwalinga commented Dec 4, 2020

Issue Report Checklist

  • Searched the issues page for similar reports
  • Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
  • Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
  • Could not reproduce inside jupyter qtconsole (if console-related)
  • Tried basic troubleshooting (if a bug/error)
    • Restarted Spyder
    • Reset preferences with spyder --reset
    • Reinstalled the latest version of Anaconda
    • Tried the other applicable steps from the Troubleshooting Guide
  • Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description

If installing Spyder with the newest pip it won't install.

What steps reproduce the problem?

  1. pip --version => 20.3.1 or 20.3.0
  2. python --version => 3.9.0
  3. Please note that both have to be the versions specified , if using 3.8 with pip 20.3.1 it still works and 3.9 with 20.2.4 also works.
  4. pip install spyder => You will get an error

What is the expected output? What do you see instead?

Full error trace:

Paste Traceback/Error Below (if applicable)

» pip install spyder        
Collecting spyder
  Using cached spyder-4.2.0-py3-none-any.whl (10.8 MB)
Requirement already satisfied: atomicwrites>=1.2.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (1.4.0)
Requirement already satisfied: pyls-black>=0.4.6 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.4.6)
Requirement already satisfied: pyls-spyder>=0.1.1 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.2.1)
Requirement already satisfied: python-language-server[all]<1.0.0,>=0.36.1 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.36.1)
Requirement already satisfied: three-merge>=0.1.1 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.1.1)
Requirement already satisfied: qtawesome>=0.5.7 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (1.0.1)
Requirement already satisfied: watchdog>=0.10.3 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.10.4)
Requirement already satisfied: pexpect>=4.4.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (4.8.0)
Requirement already satisfied: spyder-kernels<1.11.0,>=1.10.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (1.10.0)
Requirement already satisfied: parso==0.7.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.7.0)
Requirement already satisfied: jsonschema>=3.2.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (3.2.0)
Requirement already satisfied: qdarkstyle>=2.8 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (2.8.1)
Requirement already satisfied: setuptools>=39.0.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (49.6.0)
Requirement already satisfied: pylint>=1.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (2.6.0)
Requirement already satisfied: chardet>=2.0.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (3.0.4)
Requirement already satisfied: pyqtwebengine<5.13 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (5.12.1)
Requirement already satisfied: keyring>=17.0.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (21.4.0)
Requirement already satisfied: intervaltree>=3.0.2 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (3.1.0)
Requirement already satisfied: numpydoc>=0.6.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (1.1.0)
Requirement already satisfied: pyxdg>=0.26 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.27)
Requirement already satisfied: ipython>=4.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (7.18.1)
Requirement already satisfied: sphinx>=0.6.6 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (3.3.1)
Requirement already satisfied: qtpy>=1.5.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (1.9.0)
Requirement already satisfied: pygments>=2.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (2.7.1)
Requirement already satisfied: pyqt5<5.13 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (5.12.3)
Requirement already satisfied: qtconsole>=4.7.7 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (5.0.1)
Requirement already satisfied: jedi==0.17.2 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.17.2)
Requirement already satisfied: psutil>=5.3 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (5.7.3)
Requirement already satisfied: diff-match-patch>=20181111 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (20200713)
Requirement already satisfied: cloudpickle>=0.5.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (1.6.0)
Requirement already satisfied: pickleshare>=0.4 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.7.5)
Requirement already satisfied: pyzmq>=17 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (20.0.0)
Requirement already satisfied: nbconvert>=4.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (6.0.7)
Requirement already satisfied: sortedcontainers<3.0,>=2.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from intervaltree>=3.0.2->spyder) (2.3.0)
Requirement already satisfied: pygments>=2.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (2.7.1)
Requirement already satisfied: pickleshare>=0.4 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.7.5)
Requirement already satisfied: setuptools>=39.0.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (49.6.0)
Requirement already satisfied: traitlets>=4.2 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from ipython>=4.0->spyder) (5.0.5)
Requirement already satisfied: backcall in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from ipython>=4.0->spyder) (0.2.0)
Requirement already satisfied: pexpect>=4.4.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (4.8.0)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from ipython>=4.0->spyder) (3.0.8)
Requirement already satisfied: decorator in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from ipython>=4.0->spyder) (4.0.10)
Requirement already satisfied: jedi==0.17.2 in ./.cache/pypoetry/virtualenvs/demap-kqoNszLJ-py3.9/lib/python3.9/site-packages (from spyder) (0.17.2)
INFO: pip is looking at multiple versions of decorator to determine which version is compatible with other requirements. This could take a while.
Collecting decorator
  Using cached decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
INFO: pip is looking at multiple versions of <Python from Requires-Python> to determine which version is compatible with other requirements. This could take a while.
  Using cached decorator-4.4.1-py2.py3-none-any.whl (9.2 kB)
  Using cached decorator-4.4.0-py2.py3-none-any.whl (8.3 kB)
  Using cached decorator-4.3.2-py2.py3-none-any.whl (9.1 kB)
  Using cached decorator-4.3.1-py2.py3-none-any.whl (8.8 kB)
  Using cached decorator-4.3.0-py2.py3-none-any.whl (9.2 kB)
  Using cached decorator-4.2.1-py2.py3-none-any.whl (9.3 kB)
INFO: pip is looking at multiple versions of decorator to determine which version is compatible with other requirements. This could take a while.
  Using cached decorator-4.1.2-py2.py3-none-any.whl (9.1 kB)
  Using cached decorator-4.1.1-py2.py3-none-any.whl (9.0 kB)
  Using cached decorator-4.1.0-py2.py3-none-any.whl (9.0 kB)
  Using cached decorator-4.0.11-py2.py3-none-any.whl (8.9 kB)
  Using cached decorator-4.0.9-py2.py3-none-any.whl (22 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. If you want to abort this run, you can press Ctrl + C to do so. To improve how pip performs, tell us what happened here: https://pip.pypa.io/surveys/backtracking
  Using cached decorator-4.0.8-py2.py3-none-any.whl (22 kB)
ERROR: Requested decorator from https://files.pythonhosted.org/packages/ed/69/24345e0d49c700557f135d01f5de03345368303fdee81b54eae28bf6143d/decorator-4.0.8-py2.py3-none-any.whl#sha256=267b0d56f2c44857f0803cefe5ee1b5d661fd17ef78be3b447d295f70d4a9a5d (from ipython>=4.0->spyder) has different version in metadata: '4.0.7'

Versions

  • Spyder version: 4.2.0
  • Python version: 3.9
  • Qt version: NA
  • PyQt version: 5.12.3
  • Operating System name/version: MX Linux (Debian 10)

Work arounds

  • Downgrade pip to 20.2.4
  • Downgrade python to 3.8
  • This seems pip specific, so just use conda

PS. I know you don't officially support pip, but I still thought I led you know.

Possible solutions

It seems the problem isn't specially Spyder to blame, but rather that the decorator package has been packaged incorrectly for 4.0.8 (metadata has not been updated). Unfortunately the combination of deps of Spyder, pips new dep resolver, and running Python3.9 has picked exactly that package. A crude solution would be to just specify in the Spyder deps to blacklist decorator==4.0.8 and hopefully pip will pick a correctly packaged version of the decorator package.

@ccordoba12
Copy link
Member

Hey @hwalinga, thanks for reporting. decorator is a dependency of IPython:

https://github.com/ipython/ipython/blob/781f97f044dca67cc0ef5c4fad9ec463caf4192f/setup.py#L188

So I think it's better if you report this problem there because when fixed it'll make IPython installable with pip 20.3 and Python 3.9.

@hwalinga
Copy link
Author

hwalinga commented Dec 4, 2020

Well, yes and no. IPython is perfectly installable with pip 20.3 and Python 3.9, because the dep resolver does not resolve to the problematic version of decorator==4.0.8 when installing only IPython. This happens because of the unique combination of dependencies that Spyder has that make it that pip chooses to try to install this problematic version of decorator.

EDIT: So, what do you think? Should Spyder fix this, or should IPython fix this?

@ccordoba12
Copy link
Member

I think it should be fixed in IPython by making it blacklist decorator 4.0.8, as you said. Or you could tell the decorator maintainers to yank that release because it is faulty.

@ccordoba12
Copy link
Member

That's my suggestion because it'll help other projects that (most probably) will encounter the same problem by trying to fix it where it corresponds.

@hwalinga
Copy link
Author

hwalinga commented Dec 4, 2020

Will do, thank you.

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

No branches or pull requests

2 participants