ipython笔记本内联matplotlib升级到2.0后无法正常工作

Ale*_*x Z 5 matplotlib python-3.x ipython-notebook

我最近将ipython升级到2.0.0,无法使内联图工作.如果我试试

%pylab inline
plot([1,2],[1,2])
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

Populating the interactive namespace from numpy and matplotlib
[<matplotlib.lines.Line2D at 0x10ffcf080>]
/usr/local/lib/python3.4/site-packages/IPython/core/formatters.py:239: FormatterWarning: Exception in image/png formatter: _image_module::readpng:  png_create_read_struct failed
  FormatterWarning,
<matplotlib.figure.Figure at 0x10e77ca58>
Run Code Online (Sandbox Code Playgroud)

在控制台中,我有以下错误:

ERROR:tornado.application:Uncaught exception in /api/kernels/0a214dee-3143-4d34-89cb-9d65ce154fe6/shell
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/site-packages/tornado/websocket.py", line 322, in wrapper
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.4/site-packages/IPython/html/services/kernels/handlers.py", line 122, in on_message
    self.session.send(self.zmq_stream, msg)
  File "/usr/local/lib/python3.4/site-packages/IPython/kernel/zmq/session.py", line 646, in send
    stream.send_multipart(to_send, copy=copy)
AttributeError: 'NoneType' object has no attribute 'send_multipart'
Run Code Online (Sandbox Code Playgroud)

知道这里发生了什么吗?

编辑:我在python 3.4.0,ipython 2.0.0和matplotlib 1.3.1

emu*_*ing 0

正如 tcaswell 提到的,处理各个 Python 模块的依赖关系问题的最简单方法是在虚拟环境中测试它们 - 有效地为您提供全新安装。如果不出意外的话,这有助于调试过程。

  • myenv通过在终端中运行以下命令来创建一个虚拟环境:$ virtualenv myenv

  • 通过从终端运行来激活环境:$ source myenv/bin/activate

  • 安装 ipython(虚拟环境的名称现在位于提示符处的括号中:(myenv)$ pip install ipython notebook

  • 完成虚拟环境后,运行$ deactivate或关闭终端会话。

有很多关于虚拟环境的优秀指南;我建议从这里开始。如果在虚拟环境中安装不能解决问题,则可能存在更大的问题。使用完虚拟环境后,您只需删除以其名称创建的文件夹(在本例中为 myenv)。

最后,我建议按照此问题中的讨论%matplotlib inline使用over 。%pylab inline