ContinuumIO / anaconda-issues

Anaconda issue tracking
648 stars 223 forks source link

IPython 4.2 seems broken #821

Closed michaelaye closed 8 years ago

michaelaye commented 8 years ago

On OSX 10.10.5, this happens after upgrade to 4.2. Note that all is fine after I downgrade to 4.1.2:

py35)└─❱❱❱ conda update ipython                                                   +4072 22:13 ❰─┘
Fetching package metadata: ....
Solving package specifications: .........

Package plan for installation in environment /Users/klay6683/miniconda3/envs/py35:

The following packages will be UPDATED:

    ipython: 4.1.2-py35_2 --> 4.2.0-py35_1

Proceed ([y]/n)? y

Unlinking packages ...
[      COMPLETE      ]|######################################################################| 100%
Linking packages ...
[      COMPLETE      ]|######################################################################| 100%

┌─( ~/D/src )──────────────────────────────────────────────────────────────────────( @MacL2938 )─┐
(py35)└─❱❱❱ ipython                                                                +4073 22:14 ❰─┘
Traceback (most recent call last):
  File "/Users/klay6683/miniconda3/envs/py35/bin/ipython", line 4, in <module>
    import IPython
  File "/Users/klay6683/miniconda3/envs/py35/lib/python3.5/site-packages/IPython/__init__.py", line 48, in <module>
    from .core.application import Application
  File "/Users/klay6683/miniconda3/envs/py35/lib/python3.5/site-packages/IPython/core/application.py", line 24, in <module>
    from IPython.core import release, crashhandler
  File "/Users/klay6683/miniconda3/envs/py35/lib/python3.5/site-packages/IPython/core/crashhandler.py", line 28, in <module>
    from IPython.core import ultratb
  File "/Users/klay6683/miniconda3/envs/py35/lib/python3.5/site-packages/IPython/core/ultratb.py", line 117, in <module>
    from IPython.core import debugger
  File "/Users/klay6683/miniconda3/envs/py35/lib/python3.5/site-packages/IPython/core/debugger.py", line 35, in <module>
    from IPython.utils import PyColorize, ulinecache
  File "/Users/klay6683/miniconda3/envs/py35/lib/python3.5/site-packages/IPython/utils/PyColorize.py", line 57, in <module>
    from .colorable import Colorable
ImportError: No module named 'IPython.utils.colorable'

┌─( ~/D/src )──────────────────────────────────────────────────────────────────────( @MacL2938 )─┐
(py35)└─❱❱❱ conda install ipython=4.1                                         1 ⏎  +4074 22:14 ❰─┘
Fetching package metadata: ....
Solving package specifications: .........

Package plan for installation in environment /Users/klay6683/miniconda3/envs/py35:

The following packages will be DOWNGRADED:

    ipython: 4.2.0-py35_1 --> 4.1.2-py35_2

Proceed ([y]/n)? y

Unlinking packages ...
[      COMPLETE      ]|######################################################################| 100%
Linking packages ...
[      COMPLETE      ]|######################################################################| 100%

┌─( ~/D/src )──────────────────────────────────────────────────────────────────────( @MacL2938 )─┐
(py35)└─❱❱❱ ipython                                                                +4075 22:15 ❰─┘
Python 3.5.1 |Continuum Analytics, Inc.| (default, Dec  7 2015, 11:24:55)
Type "copyright", "credits" or "license" for more information.

IPython 4.1.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.
Automatic calling is: Smart
kalefranz commented 8 years ago

@ilanschnell is there a new dependency we didn't grab?

ilanschnell commented 8 years ago

I just tried (on OSX):

$ conda create -n bar python=3.5 ipython
...
The following NEW packages will be INSTALLED:

    appnope:           0.1.0-py35_0 
    backports:         1.0-py35_0   
    decorator:         4.0.9-py35_0 
    get_terminal_size: 1.0.0-py35_0 
    ipython:           4.2.0-py35_1 
    ipython_genutils:  0.1.0-py35_0 
    openssl:           1.0.2h-1     
    path.py:           8.2.1-py35_0 
    pexpect:           4.0.1-py35_0 
    pickleshare:       0.7.2-py35_0 
    pip:               8.1.2-py35_0 
    ptyprocess:        0.5.1-py35_0 
    python:            3.5.1-0      
    python.app:        1.2-py35_4   
    readline:          6.2-2        
    setuptools:        22.0.5-py35_0
    simplegeneric:     0.8.1-py35_1 
    sqlite:            3.13.0-0     
    tk:                8.5.18-0     
    traitlets:         4.2.1-py35_0 
    wheel:             0.29.0-py35_0
    xz:                5.0.5-1      
    zlib:              1.2.8-3

And then executing the installed ipython. All went fine.

@michaelaye, are you just using the default channel? Or are some of the packages installed from other locations? Are all dependencies installed into the environment? What is the output from conda list? Thanks

michaelaye commented 8 years ago

Did just that. Fails here. hrmpf :(

(stable)└─❱❱❱ conda create -n bar python=3.5 ipython                         127 ⏎  +4091 22:34 ❰─┘
Fetching package metadata: ....
Solving package specifications: .........

Package plan for installation in environment /Users/klay6683/miniconda3/envs/bar:

The following NEW packages will be INSTALLED:

    appnope:           0.1.0-py35_0
    backports:         1.0-py35_0
    decorator:         4.0.9-py35_0
    get_terminal_size: 1.0.0-py35_0
    ipython:           4.2.0-py35_1
    ipython_genutils:  0.1.0-py35_0
    openssl:           1.0.2h-1
    path.py:           8.2.1-py35_0
    pexpect:           4.0.1-py35_0
    pickleshare:       0.7.2-py35_0
    pip:               8.1.2-py35_0
    ptyprocess:        0.5.1-py35_0
    python:            3.5.1-0
    python.app:        1.2-py35_4
    readline:          6.2-2
    setuptools:        22.0.5-py35_0
    simplegeneric:     0.8.1-py35_1
    sqlite:            3.13.0-0
    tk:                8.5.18-0
    traitlets:         4.2.1-py35_0
    wheel:             0.29.0-py35_0
    xz:                5.0.5-1
    zlib:              1.2.8-3

Proceed ([y]/n)? y

Linking packages ...
[      COMPLETE      ]|#######################################################################| 100%
#
# To activate this environment, use:
# $ source activate bar
#
# To deactivate this environment, use:
# $ source deactivate
#

┌─( ~/D/s/a/m/Tutorials λ:py3_summer | ✗ ✱ ◼ ea08826 )──────────────────────────────( @MacL2938 )─┐
(stable)└─❱❱❱ source activate bar                                                   +4092 22:34 ❰─┘
discarding /Users/klay6683/miniconda3/envs/stable/bin from PATH
prepending /Users/klay6683/miniconda3/envs/bar/bin to PATH

┌─( ~/D/s/a/m/Tutorials λ:py3_summer | ✗ ✱ ◼ ea08826 )──────────────────────────────( @MacL2938 )─┐
(bar)└─❱❱❱ ipython                                                                  +4093 22:34 ❰─┘
Traceback (most recent call last):
  File "/Users/klay6683/miniconda3/envs/bar/bin/ipython", line 4, in <module>
    import IPython
  File "/Users/klay6683/miniconda3/envs/bar/lib/python3.5/site-packages/IPython/__init__.py", line 48, in <module>
    from .core.application import Application
  File "/Users/klay6683/miniconda3/envs/bar/lib/python3.5/site-packages/IPython/core/application.py", line 24, in <module>
    from IPython.core import release, crashhandler
  File "/Users/klay6683/miniconda3/envs/bar/lib/python3.5/site-packages/IPython/core/crashhandler.py", line 28, in <module>
    from IPython.core import ultratb
  File "/Users/klay6683/miniconda3/envs/bar/lib/python3.5/site-packages/IPython/core/ultratb.py", line 117, in <module>
    from IPython.core import debugger
  File "/Users/klay6683/miniconda3/envs/bar/lib/python3.5/site-packages/IPython/core/debugger.py", line 35, in <module>
    from IPython.utils import PyColorize, ulinecache
  File "/Users/klay6683/miniconda3/envs/bar/lib/python3.5/site-packages/IPython/utils/PyColorize.py", line 57, in <module>
    from .colorable import Colorable
ImportError: No module named 'IPython.utils.colorable'

Note I test-installed the new IPython 5 betas before. But I kicked them off again, due to probs, and they obviously shouldn't mess with a fresh conda env. Unless, they left some ill-posed config file that now disturbs things?

Here's conda list:

(bar)└─❱❱❱ conda list                                                                       1 ⏎  +4094 22:38 ❰─┘
# packages in environment at /Users/klay6683/miniconda3/envs/bar:
#
appnope                   0.1.0                    py35_0    defaults
backports                 1.0                      py35_0    defaults
backports.shutil-get-terminal-size 1.0.0                     <pip>
decorator                 4.0.9                    py35_0    defaults
get_terminal_size         1.0.0                    py35_0    defaults
ipython                   4.2.0                    py35_1    defaults
ipython-genutils          0.1.0                     <pip>
ipython_genutils          0.1.0                    py35_0    defaults
openssl                   1.0.2h                        1    defaults
path.py                   8.2.1                    py35_0    defaults
pexpect                   4.0.1                    py35_0    defaults
pickleshare               0.7.2                    py35_0    conda-forge
pip                       8.1.2                    py35_0    defaults
ptyprocess                0.5.1                    py35_0    defaults
python                    3.5.1                         0    defaults
python-contrib-nbextensions alpha                     <pip>
python.app                1.2                      py35_4    defaults
readline                  6.2                           2    <unknown>
setuptools                22.0.5                   py35_0    defaults
simplegeneric             0.8.1                    py35_1    defaults
sqlite                    3.13.0                        0    defaults
tk                        8.5.18                        0    <unknown>
traitlets                 4.2.1                    py35_0    defaults
wheel                     0.29.0                   py35_0    defaults
xz                        5.0.5                         1    defaults
zlib                      1.2.8                         3    defaults

I only use the default channel:

(bar)└─❱❱❱ conda config --get channels                                                           +4096 22:38 ❰─┘
--add channels 'defaults'
ilanschnell commented 8 years ago

Ah, could it be that your ipython configuration in ~/.ipython/ maybe contains the enabling of some additional IPython features which fail because you don't have the necessary packages installed? Would you be willing to try and rm -rf ~/.ipython, to see if the problem persists.

michaelaye commented 8 years ago

Isn't your advice a bit irresponsible? I do some hell of a setup in .ipython (import's and such) and you ask me just to delete it? What if I'd be a beginner not realizing this? I renamed it to `~/.ipython_backup:

(bar)└─❱❱❱ ls -lad .i*                                                                           +4107 22:56 ❰─┘
drwxr-xr-x  3 klay6683  dusers   102B Apr  6  2015 .Isis
drwxr-xr-x  6 klay6683  dusers   204B Oct 13  2015 .idl
-rw-r--r--  1 klay6683  dusers   126B Aug  7  2015 .inputrc
drwxr-xr-x  5 klay6683  dusers   170B Oct 17  2015 .ipynb_checkpoints
lrwxr-xr-x  1 klay6683  dusers    39B Feb 15 15:05 .ipython_backup -> /Users/klay6683/Dropbox/Mackup/.ipython
drwxr-xr-x  4 klay6683  dusers   136B Jun  5 16:44 .iterm2
-rwxr-xr-x  1 klay6683  dusers   4.8K Jun  5 16:44 .iterm2_shell_integration.zsh

and it still doesn't work, with the exact same error signature. Question: Why do things work when I downgrade to IPython 4.1.2 as I reported above?

ilanschnell commented 8 years ago

Sorry for the irresponsible advice. I looked at lib/python3.5/site-packages/IPython/utils/PyColorize.py in my test installation an the failing line 57 is not from .colorable import Colorable but if PY3:. To me that indicates that your IPython 4.2.0 package is coming from a different source. Can you try $ conda install --force ipython?

michaelaye commented 8 years ago

Wow, that's it! So it's this bug I reported in March already again, I guess. :(

https://github.com/conda/conda/issues/2316

Thanks for your help!

michaelaye commented 8 years ago

I just realized that a beginner most likely wouldn't have hell of a setup in .ipython. ;)

ilanschnell commented 8 years ago

A beginner would have the default .ipython without any manual edits, such that blowing it away wouldn't be a loss :-)