%matplotlib qt non funziona

Python 2.7.12 |Anaconda 4.2.0 (64-bit)| Spyder 3.0.1| IPython 5.1.0 (In esecuzione su Windows)

Quando si chiede per trame in una nuova finestra tramite:

%matplotlib qt

Ottengo un errore:

Traceback (most recent call last):

  File "<ipython-input-2-6ad73d0e50c7>", line 1, in <module>
    get_ipython().magic(u'matplotlib qt')

  File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2158, in magic
    return self.run_line_magic(magic_name, magic_arg_s)

  File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2079, in run_line_magic
    result = fn(*args,**kwargs)

  File "<decorator-gen-105>", line 2, in matplotlib

  File "C:\Anaconda2\lib\site-packages\IPython\core\magic.py", line 188, in <lambda>
    call = lambda f, *a, **k: f(*a, **k)

  File "C:\Anaconda2\lib\site-packages\IPython\core\magics\pylab.py", line 100, in matplotlib
    gui, backend = self.shell.enable_matplotlib(args.gui)

  File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2947, in enable_matplotlib
    pt.activate_matplotlib(backend)

  File "C:\Anaconda2\lib\site-packages\IPython\core\pylabtools.py", line 295, in activate_matplotlib
    matplotlib.pyplot.switch_backend(backend)

  File "C:\Anaconda2\lib\site-packages\matplotlib\pyplot.py", line 232, in switch_backend
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\backend_qt4agg.py", line 18, in <module>
    from .backend_qt5agg import FigureCanvasQTAggBase as _FigureCanvasQTAggBase

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\backend_qt5agg.py", line 16, in <module>
    from .backend_qt5 import QtCore

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\backend_qt5.py", line 31, in <module>
    from .qt_compat import QtCore, QtGui, QtWidgets, _getSaveFileName, __version__

  File "C:\Anaconda2\lib\site-packages\matplotlib\backends\qt_compat.py", line 137, in <module>
    from PyQt4 import QtCore, QtGui

ImportError: No module named PyQt4



4 Replies
  1. 4

    Penso che il tuo problema è causato dalla presenza di un QT_API variabile di ambiente che ancora è impostato per pyqt4 (o pyside). Questo controllo, per esempio, digitando import os; print(os.environ.get('QT_API')) nel prompt di Python.

    Se questo è il caso, è necessario rimuovere o impostare a pyqt5. Google come impostare una variabile d’ambiente in Windows se non sai come.

    • È rock!! Ho usato import os; print(os.environ.get(‘QT_API’)), e poi ho ottenuto pyqt5. Allora, sono andato su Strumenti -> impostazioni -> Ipython console -> grafica e ho selezionato backend Qt5, e dopo il riavvio spyder, voilà, problema risolto. Grazie!!!!
  2. 3

    Ho usato import os; print(os.environ.get(‘QT_API’)), e poi ho ottenuto pyqt5. Allora, sono andato su Strumenti -> impostazioni -> Ipython console -> grafica e ho selezionato backend Qt5, e dopo il riavvio spyder, voilà, problema risolto. Grazie!!!!

  3. 2

    Questo problema è stato risolto per me l’aggiornamento matplotlib dalla versione matplotlib-1.5.3 matplotlib-2.2.2

    pip install matplotlib --upgrade
  4. 1

    Se volete che il vostro trame in una nuova finestra, nella Spyder, non avete bisogno di un %matplotlib qt.

    Invece, andare per Tools e Preferences in Spyder, quindi in Preferences fare clic su IPython consol. In IPython consol fare clic sulla scheda Graphics, quindi in Graphics Backend discesa cambiare Inline per QT.

    • Grazie, ho provato ma lo stesso errore: ImportError: No module named PyQt4
    • Provare senza la %matplotlib qt.
    • Ma, il messaggio di errore non è nuova finestra situazione, ha a che fare con l’importazione di PyQt4. Il tracciato in una nuova finestra problema Spyder dovrebbe essere risolto usando la soluzione nella mia risposta.
    • Stessa cosa qui 🙁
    • Cercate di non importare PyQt4
    • Non so come fare… quindi cosa devo fare, invece?
    • Basta commentare questa riga come questa: #import PyQt4 e vedere cosa succede.

Lascia un commento