2014-05-08 41 views
5

我最近將ipython升級到了2.0.0,並且無法使內聯圖工作。如果我嘗試ipython筆記本內聯matplotlib升級到2.0後無法正常工作

%pylab inline 
plot([1,2],[1,2]) 

我得到以下輸出:

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> 

並在控制檯中,我有以下錯誤:

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' 

任何想法是怎麼回事?

編輯:我對Python的3.4.0,2.0.0的IPython和matplotlib 1.3.1

+1

看起來像你的ipython安裝是borked,我懷疑是因爲有一些舊文件掛在身邊。我會建議刪除所有內容並重新安裝。我還建議使用虛擬環境而不是在系統級安裝。 – tacaswell

+0

你有沒有想過是什麼原因造成的? –

+0

作爲第一種可能性,如果存在〜/ .ipython目錄,我會刪除(或者移動到其他名稱,如果您保存的話)。也許以前版本的設置會導致問題。 –

回答

0

如前所述tcaswell,處理問題與個別Python模塊的依賴關係的最簡單方法是對其進行測試在虛擬環境中 - 有效地給你一個乾淨的安裝。如果沒有別的,這有助於調試過程。

  • 請叫myenv虛擬環境中通過在 終端運行以下命令:$ virtualenv myenv

  • 由終端激活運行環境:$ source myenv/bin/activate

  • 安裝IPython中(你的虛擬環境的名稱現在是在你的提示 括號:(myenv)$ pip install ipython notebook

  • 一旦你與虛擬環境中完成,運行$ deactivate或 關閉終端會話

對於虛擬環境有很多不錯的指南,我推薦使用starting here如果在虛擬環境中安裝不能解決問題,可能會有更大的問題。唱這個虛擬環境,你可以簡單地刪除用它的名字創建的文件夾(在這個例子中是myenv)。

最後,我建議使用%matplotlib inline而不是%pylab inline作爲discussed in this question

相關問題