Reputation: 11680
I recently installed ipython as per instructions here: http://ardiyu07.blogspot.com/2012/04/ipython-012-installation-in-cygwin.html.
When I run 'ipython --pylab'
I get the error message below. I have googled around and have found postings about this error but in different context. Mine occurs when I launch ipython with the --pylab argument. I know this has something to do with the matplotlib gui interaction but not sure what exactly. I appreciate the guidance.
$ ipython --pylab
Python 2.7.3 (default, Dec 18 2012, 13:50:09)
Type "copyright", "credits" or "license" for more information.
IPython 0.13.1 -- 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.
Welcome to pylab, a matplotlib-based Python environment [backend: TkAgg].
For more information, type 'help(pylab)'.
[TerminalIPythonApp] GUI event loop or pylab initialization failed
---------------------------------------------------------------------------
TclError Traceback (most recent call last)
/usr/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc in enable_pylab(self, gui, import_all)
2780 # Now we must activate the gui pylab wants to use, and fix %run to take
2781 # plot updates into account
-> 2782 self.enable_gui(gui)
2783 self.magics_manager.registry['ExecutionMagics'].default_runner = \
2784 mpl_runner(self.safe_execfile)
/usr/lib/python2.7/site-packages/IPython/lib/inputhook.pyc in enable_gui(gui, app)
526 e = "Invalid GUI request %r, valid ones are:%s" % (gui, guis.keys())
527 raise ValueError(e)
--> 528 return gui_hook(app)
529
/usr/lib/python2.7/site-packages/IPython/lib/inputhook.pyc in enable_tk(self, app)
322 if app is None:
323 import Tkinter
--> 324 app = Tkinter.Tk()
325 app.withdraw()
326 self._apps[GUI_TK] = app
/usr/lib/python2.7/lib-tk/Tkinter.pyc in __init__(self, screenName, baseName, className, useTk, sync, use)
1683 baseName = baseName + ext
1684 interactive = 0
-> 1685 self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
1686 if useTk:
1687 self._loadtk()
TclError: no display name and no $DISPLAY environment variable
Upvotes: 4
Views: 5041
Reputation: 512
Type startxwin
into the cygwin terminal ( you will need the X11 libraries available from the cygwin setup.exe ) You can then run ipython --pylab
from the new terminal window and a command like plot(range(10))
which will open a new window but you will need to also call plt.draw()
for the plot to appear unlike in native pylab, the control over windows for the plots in cygwin is also poor compared to native pylab.
I didn't need to edit any setup files in this process, you may need to 'pip uninstall matplotlib' and reinstall until you have the required libraries installed via the cygwin setup.exe ( tkinter and I believe X11-devel libraries are required ).
Get setuptools via ez_setup.py
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
easy_install pip
pip install numpy
pip install ipython
pip install matplotlib
Upvotes: 1