2014-05-08 4 views
5

Ho recentemente aggiornato ipython a 2.0.0 e non riesco a far funzionare i grafici in linea. Se provonotebook ipython inline matplotlib non funziona dopo l'aggiornamento a 2.0

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

ottengo il seguente output:

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> 

E nella console, ho il seguente errore:

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' 

Qualsiasi idea di cosa sta succedendo qui?

Edit: Sono in python 3.4.0, ipython 2.0.0 e 1.3.1 matplotlib

+1

Sembra che la tua installazione di ipython sia bloccata, ho il sospetto perché ci sono alcuni vecchi file in giro. Suggerirei di cancellare tutto e reinstallare. Vorrei anche suggerire di utilizzare ambienti virtuali invece di installare a livello di sistema. – tacaswell

+0

Hai mai capito cosa stava causando questo? –

+0

Come prima possibilità, vorrei rimuovere (o spostarmi su un altro nome se vuoi salvarlo) nella directory ~/.ipython se ce n'è una. Forse le impostazioni della versione precedente causano il problema. –

risposta

0

Come tcaswell accennato, il modo più semplice di affrontare le questioni con dipendenze di moduli Python singoli è di testarli in un ambiente virtuale, fornendo in modo efficace un'installazione pulita. Se non altro, questo aiuta il processo di debug.

  • Fai un ambiente virtuale chiamato myenv eseguendo questo nel vostro terminale : $ virtualenv myenv

  • attivare l'ambiente eseguendo da terminale: $ source myenv/bin/activate.

  • Installare ipython (il nome del virtualenvironment è ora in parentesi al prompt: (myenv)$ pip install ipython notebook

  • volta che hai finito con l'ambiente virtuale, esegue $ deactivate o chiudere la sessione di terminale

  • .

Ci sono una varietà di buone guide per ambienti virtuali, io raccomanderei starting here. Se l'installazione in un ambiente virtuale non risolve le cose, potrebbe esserci un problema più grande. canta l'ambiente virtuale, puoi semplicemente cancellare la cartella creata con il suo nome (in questo caso myenv).

Infine, si consiglia di utilizzare %matplotlib inline su %pylab inline come discussed in this question.