【问题标题】:ipython --pylab on cygwin: TclError: no display name and no $DISPLAY environment variableipython --pylab on cygwin: TclError: no display name and no $DISPLAY environment variable
【发布时间】:2013-03-24 17:31:34
【问题描述】:

我最近按照此处的说明安装了 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

【问题讨论】:

  • 不知道tkinter是否兼容cygwin。你需要使用cygwin吗?您可以在 Windows 上安装 IPython 和 matplotlib 而无需 cygwin。
  • 感谢您的反馈。我对 cygwin 有其他依赖项,这就是为什么我想与运行时环境保持一致。我在上面引用的带有安装说明的网站似乎表明 ipython 和 matplotlib 应该与 cygwin 一起使用,因为这些说明适用于 cygwin。
  • 看来您现在需要在 Cygwin 中为 tkinter 安装 X11 - 链接的帖子可能使用的是旧版本。 cygwin.com/ml/cygwin/2012-02/msg00115.html
  • 这和 X/Cygwin (x.cygwin.com) 一样吗?我刚刚安装,我得到了同样的错误。 :(
  • 对不起,那你得希望对 Cygwin 有更多了解的人能帮上忙。

标签: matplotlib cygwin tkinter ipython


【解决方案1】:

在 cygwin 终端中键入 startxwin(您将需要 cygwin setup.exe 中提供的 X11 库)然后您可以从新终端窗口运行 ipython --pylab 和类似 plot(range(10)) 的命令,这将打开一个新的窗口,但您还需要调用 plt.draw() 以使绘图与原生 pylab 不同,与原生 pylab 相比,cygwin 中绘图的窗口控制也很差。

在此过程中我不需要编辑任何安装文件,您可能需要“pip uninstall matplotlib”并重新安装,直到您通过 cygwin setup.exe 安装了所需的库(tkinter 和我相信 X11-devel 库是必须的 )。

通过 ez_setup.py 获取 setuptools

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 2022-12-01
    • 2020-09-23
    相关资源
    最近更新 更多