2013-03-24 76 views
4

我最近按照这里的说明安装了ipython:http://ardiyu07.blogspot.com/2012/04/ipython-012-installation-in-cygwin.html

当我运行'ipython --pylab'时,出现以下错误消息。我搜索了一下,发现了关于这个错误的帖子,但是在不同的上下文中。当我使用--pylab参数启动ipython时会发生这种情况。我知道这与matplotlib gui交互有关,但不确定究竟是什么。我很欣赏这个指导。

$ 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 
+0

setuptools的我不知道,如果是Tkinter的使用Cygwin兼容。你需要使用cygwin吗?你可以在Windows上安装IPython&matplotlib而不需要cygwin。 – 2013-03-24 18:56:35

+0

感谢您的反馈。我对cygwin有其他依赖关系,这就是为什么我想保持与运行时环境一致的原因。带有上面引用的安装说明的网站似乎表明,ipython和matplotlib应该可以与cygwin一起工作,因为这些说明适用于cygwin。 – codingknob 2013-03-24 20:05:30

+2

看来您现在需要在Cygwin中为tkinter安装X11 - 链接的帖子可能使用的是旧版本。 http://cygwin.com/ml/cygwin/2012-02/msg00115.html – 2013-03-24 20:54:39

回答

1

startxwin类型进入cygwin的终端(需要可从Cygwin的的setup.exe X11库),那么你可以运行在新的终端窗口,并像plot(range(10))命令,将打开一个新窗口ipython --pylab但你也需要调用plt.draw()来使得plot不像原生pylab那样出现,cygwin的plot对窗口的控制与本地pylab相比也很差。

我不需要在这个过程中编辑任何安装文件,你可能需要'点卸载matplotlib'并重新安装,直到你通过cygwin setup.exe安装了所需的库(tkinter,我相信X11-devel图书馆是必需的)。

获得通过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