Calysto / xonsh_kernel

Jupyter Kernel for Xonsh
22 stars 2 forks source link

Unable to use IPython.display - '_io.StringIO' object has no attribute 'softspace' #8

Open mjbright opened 8 years ago

mjbright commented 8 years ago

I tried to use the IPython display functionality as below:

from IPython.display import display,HTML display(HTML('<h4>Here is an H4 header</h4>'))

but I get the following error (on Ubuntu 16.04 and on Windows7, using Anaconda Python).

AttributeError: '_io.StringIO' object has no attribute 'softspace'

Below is my config (on Ubuntu):

mjb@NUC ~ $ xonfig
+------------------+----------+
| xonsh            | 0.3.4    |
| Python           | 3.5.1    |
| PLY              | 3.7      |
| have readline    | True     |
| prompt toolkit   | None     |
| shell type       | readline |
| pygments         | 2.1.1    |
| on posix         | True     |
| on linux         | True     |
| distro           | debian   |
| on darwin        | False    |
| on windows       | False    |
| on cygwin        | False    |
| is superuser     | False    |
| default encoding | utf-8    |
+------------------+----------+
mjbright commented 8 years ago

Adding full traceback on Ubuntu

Traceback (most recent call last):
  File "/home/mjb/anaconda3/lib/python3.5/site-packages/xonsh/base_shell.py", line 154, in default
    run_compiled_code(code, self.ctx, None, 'single')
  File "/home/mjb/anaconda3/lib/python3.5/site-packages/xonsh/codecache.py", line 57, in run_compiled_code
    func(code, glb, loc)
  File "", line 3, in 
  File "/home/mjb/anaconda3/lib/python3.5/site-packages/IPython/core/display.py", line 152, in display
    format = InteractiveShell.instance().display_formatter.format
  File "/home/mjb/anaconda3/lib/python3.5/site-packages/traitlets/config/configurable.py", line 405, in instance
    inst = cls(*args, **kwargs)
  File "/home/mjb/anaconda3/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 499, in __init__
    self.init_io()
  File "/home/mjb/anaconda3/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 670, in init_io
    io.stdout = io.IOStream(sys.stdout)
  File "/home/mjb/anaconda3/lib/python3.5/site-packages/IPython/utils/io.py", line 37, in __init__
    setattr(self, meth, getattr(stream, meth))
  File "/home/mjb/anaconda3/lib/python3.5/tempfile.py", line 750, in softspace
    return self._file.softspace
AttributeError: '_io.StringIO' object has no attribute 'softspace'
blink1073 commented 8 years ago

Hi @mjbright, does that same code work for you in a regular python kernel?

mjbright commented 8 years ago

Yes, I just retested it with the Python3 kernel to be sure.

blink1073 commented 8 years ago

That is a real bummer that a StringIO object would not have the same interface as a file object.