Repository: ipython/ipython

Issue:
`pip install ipython[all]` ignores platform dependent dependencies
If I try to run `pip install ipython[all]` on my python install on windows (Win 7 64-bit, WinPython 2.7.10), it fails with the following:

```
C:\Python\WinPython-64bit-2.7.10.1\python-2.7.10.amd64>pip install --upgrade ipy
thon[all]
Requirement already up-to-date: ipython[all] in c:\python\winpython-64bit-2.7.10
.1\python-2.7.10.amd64\lib\site-packages
Requirement already up-to-date: decorator in c:\python\winpython-64bit-2.7.10.1\
python-2.7.10.amd64\lib\site-packages (from ipython[all])
Requirement already up-to-date: simplegeneric>0.8 in c:\python\winpython-64bit-2
.7.10.1\python-2.7.10.amd64\lib\site-packages (from ipython[all])
Requirement already up-to-date: traitlets in c:\python\winpython-64bit-2.7.10.1\
python-2.7.10.amd64\lib\site-packages (from ipython[all])
Requirement already up-to-date: pickleshare in c:\python\winpython-64bit-2.7.10.
1\python-2.7.10.amd64\lib\site-packages (from ipython[all])
Requirement already up-to-date: nose>=0.10.1 in c:\python\winpython-64bit-2.7.10
.1\python-2.7.10.amd64\lib\site-packages (from ipython[all])
Collecting ipyparallel (from ipython[all])
  Downloading ipyparallel-4.0.2-py2.py3-none-any.whl (164kB)
    100% |################################| 167kB 718kB/s
Requirement already up-to-date: notebook in c:\python\winpython-64bit-2.7.10.1\p
ython-2.7.10.amd64\lib\site-packages (from ipython[all])
Requirement already up-to-date: requests in c:\python\winpython-64bit-2.7.10.1\p
ython-2.7.10.amd64\lib\site-packages (from ipython[all])
Requirement already up-to-date: nbformat in c:\python\winpython-64bit-2.7.10.1\p
ython-2.7.10.amd64\lib\site-packages (from ipython[all])
Collecting pyreadline>=2 (from ipython[all])
  Downloading pyreadline-2.0.zip (108kB)
    100% |################################| 110kB 2.0MB/s
Requirement already up-to-date: nbconvert in c:\python\winpython-64bit-2.7.10.1\
python-2.7.10.amd64\lib\site-packages (from ipython[all])
Collecting testpath (from ipython[all])
  Downloading testpath-0.2-py2.py3-none-any.whl
Requirement already up-to-date: ipykernel in c:\python\winpython-64bit-2.7.10.1\
python-2.7.10.amd64\lib\site-packages (from ipython[all])
Requirement already up-to-date: numpydoc in c:\python\winpython-64bit-2.7.10.1\p
ython-2.7.10.amd64\lib\site-packages (from ipython[all])
Requirement already up-to-date: qtconsole in c:\python\winpython-64bit-2.7.10.1\
python-2.7.10.amd64\lib\site-packages (from ipython[all])
Requirement already up-to-date: Sphinx>=1.1 in c:\python\winpython-64bit-2.7.10.
1\python-2.7.10.amd64\lib\site-packages (from ipython[all])
Collecting mock (from ipython[all])
  Downloading mock-1.3.0-py2.py3-none-any.whl (56kB)
    100% |################################| 57kB 2.9MB/s
Collecting gnureadline (from ipython[all])
  Downloading gnureadline-6.3.3.tar.gz (2.5MB)
    100% |################################| 2.5MB 128kB/s
    Complete output from command python setup.py egg_info:
    Error: this module is not meant to work on Windows (try pyreadline instead)

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in <userpath>\ap
pdata\local\temp\pip-build-scarmp\gnureadline
```

pip is v7.1.2.

Now, I wasn't able to figure out from pip and setuptools docs how `[all]` is supposed to work, so I'm not sure if this is an issue with the ipython setup file, setuptools, or pip, but I figured this would be the best place to start.



Discussion:
can you try without the `[all]` which should not be needed on latest version. 
The setup.py does specify pyreadline on windows, so it should not pull gnureadline on windows...

That's very strange indeed. What do you get from `pip list`, and how did you install IPython previously?

It's possible this would be fixed by reinstalling IPython: `pip uninstall ipython; pip install ipython`

It works without `[all]` and it also works with all the extras individually ( `[parallel]`, `[qtconsole ]`, `[doc]`, `[test ]`, `[terminal ]`, `[kernel ]`, `[nbformat ]`, `[notebook ]`, `[nbconvert]`) or any comma separated combinations of them (although I have not tested this exhaustively). Only `[all]` triggers this.

I see it. This is indeed a typo in our setup.py.


Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -221,8 +221,9 @@ def run(self):
         install_requires.append('pexpect')
 
 everything = set()
-for deps in extras_require.values():
-    everything.update(deps)
+for key, deps in extras_require.items():
+    if ':' not in key:
+        everything.update(deps)
 extras_require['all'] = everything
 
 if 'setuptools' in sys.modules:


Test patch: