2016-10-01 19 views
5

Tôi đã cố gắng cài đặt matplotlib trên Windows 10 Bash shell.

Sau đó, tôi chạy dòng sau:

$ ipython3 

sau đó

In[1]: %pylab 

sau đó nó mang lại cho tôi một lỗi sau:

--------------------------------------------------------------------------- 
TclError         Traceback (most recent call last) 
<ipython-input-1-4ab7ec3413a5> in <module>() 
----> 1 get_ipython().magic('pylab') 

/usr/lib/python3/dist-packages/IPython/core/interactiveshell.py in magic(self, arg_s) 
    2164   magic_name, _, magic_arg_s = arg_s.partition(' ') 
    2165   magic_name = magic_name.lstrip(prefilter.ESC_MAGIC) 
-> 2166   return self.run_line_magic(magic_name, magic_arg_s) 
    2167 
    2168  #------------------------------------------------------------------------- 

/usr/lib/python3/dist-packages/IPython/core/interactiveshell.py in run_line_magic(self, magic_name, line) 
    2085     kwargs['local_ns'] = sys._getframe(stack_depth).f_locals 
    2086    with self.builtin_trap: 
-> 2087     result = fn(*args,**kwargs) 
    2088    return result 
    2089 

/usr/lib/python3/dist-packages/IPython/core/magics/pylab.py in pylab(self, line) 

/usr/lib/python3/dist-packages/IPython/core/magic.py in <lambda>(f, *a, **k) 
    190  # but it's overkill for just that one bit of state. 
    191  def magic_deco(arg): 
--> 192   call = lambda f, *a, **k: f(*a, **k) 
    193 
    194   if isinstance(arg, collections.Callable): 

/usr/lib/python3/dist-packages/IPython/core/magics/pylab.py in pylab(self, line) 
    129    import_all = not args.no_import_all 
    130 
--> 131   gui, backend, clobbered = self.shell.enable_pylab(args.gui, import_all=import_all) 
    132   self._show_matplotlib_backend(args.gui, backend) 
    133   print ("Populating the interactive namespace from numpy and matplotlib") 

/usr/lib/python3/dist-packages/IPython/core/interactiveshell.py in enable_pylab(self, gui, import_all, welcome_message) 
    2918   from IPython.core.pylabtools import import_pylab 
    2919 
-> 2920   gui, backend = self.enable_matplotlib(gui) 
    2921 
    2922   # We want to prevent the loading of pylab to pollute the user's 

/usr/lib/python3/dist-packages/IPython/core/interactiveshell.py in enable_matplotlib(self, gui) 
    2879     gui, backend = pt.find_gui_and_backend(self.pylab_gui_select) 
    2880 
-> 2881   pt.activate_matplotlib(backend) 
    2882   pt.configure_inline_support(self, backend) 
    2883 

/usr/lib/python3/dist-packages/IPython/core/pylabtools.py in activate_matplotlib(backend) 
    244  matplotlib.rcParams['backend'] = backend 
    245 
--> 246  import matplotlib.pyplot 
    247  matplotlib.pyplot.switch_backend(backend) 
    248 

/usr/local/lib/python3.4/dist-packages/matplotlib/pyplot.py in <module>() 
    2510 # are no-ops and the registered function respect `mpl.is_interactive()` 
    2511 # to determine if they should trigger a draw. 
-> 2512 install_repl_displayhook() 
    2513 
    2514 ################# REMAINING CONTENT GENERATED BY boilerplate.py ############## 

/usr/local/lib/python3.4/dist-packages/matplotlib/pyplot.py in install_repl_displayhook() 
    163    ipython_gui_name = backend2gui.get(get_backend()) 
    164    if ipython_gui_name: 
--> 165     ip.enable_gui(ipython_gui_name) 
    166   else: 
    167    _INSTALL_FIG_OBSERVER = True 

/usr/lib/python3/dist-packages/IPython/terminal/interactiveshell.py in enable_gui(gui, app) 
    306   from IPython.lib.inputhook import enable_gui as real_enable_gui 
    307   try: 
--> 308    return real_enable_gui(gui, app) 
    309   except ValueError as e: 
    310    raise UsageError("%s" % e) 

/usr/lib/python3/dist-packages/IPython/lib/inputhook.py in enable_gui(gui, app) 
    526   e = "Invalid GUI request %r, valid ones are:%s" % (gui, list(guis.keys())) 
    527   raise ValueError(e) 
--> 528  return gui_hook(app) 
    529 

/usr/lib/python3/dist-packages/IPython/lib/inputhook.py 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/python3.4/tkinter/__init__.py in __init__(self, screenName, baseName, className, useTk, sync, use) 
    1852     baseName = baseName + ext 
    1853   interactive = 0 
-> 1854   self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) 
    1855   if useTk: 
    1856    self._loadtk() 

TclError: no display name and no $DISPLAY environment variable 

Tôi đánh giá cao nếu ai có thể chỉ cách xóa lỗi này. Cảm ơn bạn.

Trả lời

7

Không có môi trường hiển thị chính thức cho bash trên Windows.

  • Bạn cần cài đặt môi trường hiển thị unoffical, ví dụ: Xming (https://sourceforge.net/projects/xming/)
  • Sau khi cài đặt Xming bạn cần để xuất khẩu như DISPLAY =: 0.
  • Bạn cũng cần cài đặt qtconsole. sudo apt-get install qtconsole

Tuy nhiên, tôi không đề nghị đi theo cách này, có một cách dễ dàng hơn nhiều cho việc sử dụng ipython trên Windows. Bạn có thể cài đặt Anaconda trên Windows và bạn có thể sử dụng ipython mà không gặp bất kỳ sự cố nào như thế này (https://www.continuum.io/downloads)

+0

Cảm ơn bạn rất nhiều! Sau khi thử với đề xuất của bạn, tôi sẽ chọn câu trả lời của bạn. – user545

+0

Anaconda rất dễ cài đặt và dễ sử dụng. Sau khi cài đặt anaconda bạn sẽ có ipython. Bạn có thể chạy ipython hoặc là bắt đầu và gõ ipython hoặc bạn có thể sử dụng cmd và chạy ipython. Dù bằng cách nào hoạt động tốt. –

+0

Tôi mới làm quen với python và thực sự khó hiểu khi làm phiền với pip, pip3, conda .. – user545

Các vấn đề liên quan