Anaconda: Unable to import pylab

13,176

Just had this problem and it was related to which qt backend matplotlib was trying to use, try:

import PyQt4

If you don't have PyQt4 you probably have PySide

import PySide

If this is the case you need to set the matplotlib.rcParams['backend.qt4'] == 'PySide' not 'PyQt4'. You can also do this in your matplotlibrc file (~/.matplotlib/matplotlibrc)

# find and change line:
backend.qt4 : PySide

Note: if you don't have the matplotlibrc file you can copy it from the matplotlib source directory

import os
import matplotlib
mpl_dir = os.path.dirname(matplotlib.__file__)
os.system("cp {}/mpl-data/matplotlibrc ~/.matplotlib/".format(mpl_dir))
Share:
13,176
Josh
Author by

Josh

Engineering manager at a mid-sized tech company

Updated on July 19, 2022

Comments

  • Josh
    Josh almost 2 years

    I am unable to import pylab using the latest version of Anaconda (Linux 64 bit). Other packages seem to work fine. (Note: I don't have sudo access)

    In [1]: import pylab as pl
    ---------------------------------------------------------------------------
    ImportError                               Traceback (most recent call last)
    <ipython-input-6-2cf12a0af6ff> in <module>()
    ----> 1 import pylab as pl
    
    /home/josh/installs/conda/1.7.0/lib/python2.7/site-packages/pylab.py in <module>()
    ----> 1 from matplotlib.pylab import *
          2 import matplotlib.pylab
          3 __doc__ = matplotlib.pylab.__doc__
    
    /home/josh/installs/conda/1.7.0/lib/python2.7/site-packages/matplotlib/pylab.py in <module>()
        267 from numpy.linalg import *
        268 
    --> 269 from matplotlib.pyplot import *
        270 
        271 # provide the recommended module abbrevs in the pylab namespace
    
    /home/josh/installs/conda/1.7.0/lib/python2.7/site-packages/matplotlib/pyplot.py in <module>()
         96 
         97 from matplotlib.backends import pylab_setup
    ---> 98 _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
         99 
        100 
    
    /home/josh/installs/conda/1.7.0/lib/python2.7/site-packages/matplotlib/backends/__init__.pyc in pylab_setup()
         23         backend_name = 'matplotlib.backends.%s'%backend_name.lower()
         24     backend_mod = __import__(backend_name,
    ---> 25                              globals(),locals(),[backend_name])
         26 
         27     # Things we pull in from all backends
    
    /home/josh/installs/conda/1.7.0/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py in <module>()
         11 
         12 from backend_agg import FigureCanvasAgg
    ---> 13 from backend_qt4 import QtCore, QtGui, FigureManagerQT, FigureCanvasQT,\
         14      show, draw_if_interactive, backend_version, \
         15      NavigationToolbar2QT
    
    /home/josh/installs/conda/1.7.0/lib/python2.7/site-packages/matplotlib/backends/backend_qt4.py in <module>()
         23     figureoptions = None
         24 
    ---> 25 from qt4_compat import QtCore, QtGui, _getSaveFileName, __version__
         26 
         27 backend_version = __version__
    
    /home/josh/installs/conda/1.7.0/lib/python2.7/site-packages/matplotlib/backends/qt4_compat.py in <module>()
         34 # Now perform the imports.
         35 if QT_API in (QT_API_PYQT, QT_API_PYQTv2):
    ---> 36     import sip
         37     if QT_API == QT_API_PYQTv2:
         38         if QT_API_ENV == 'pyqt':
    
    ImportError: No module named sip
    

    If I try

    > conda install sip 
    

    I get:

    Error: No packages found matching: sip
    

    I also get errors with:

    $ pip install sip                                                       1 
    Downloading/unpacking sip
      You are installing a potentially insecure and unverifiable file. Future v
    ersions of pip will default to disallowing insecure files.                
      Downloading sip-4.15.2.zip (899kB): 899kB downloaded
      Running setup.py egg_info for package sip
        Traceback (most recent call last):
          File "<string>", line 16, in <module>
        IOError: [Errno 2] No such file or directory: '/tmp/pip_build_josh/
    sip/setup.py'                                                             
        Complete output from command python setup.py egg_info:
        Traceback (most recent call last):
    
      File "<string>", line 16, in <module>
    
    IOError: [Errno 2] No such file or directory: '/tmp/pip_build_josh/sip/
    setup.py'                                                                 
    
    ----------------------------------------
    Cleaning up...
    Command python setup.py egg_info failed with error code 1 in /tmp/pip_build
    _josh/sip                                                             
    Storing complete log in /home/josh/.pip/pip.log
    

    Any thoughts on why?

    • tacaswell
      tacaswell over 10 years
      You seem to not have PyQt installed properly, use a different backend.
    • Josh
      Josh over 10 years
      Thanks @tcaswell. What other backend would you recommmend?
    • tacaswell
      tacaswell over 10 years
      The snarky (but mostly correct) answer is which ever one you have the dependencies installed for. Try tkagg, wxagg, or gtk3agg
    • tacaswell
      tacaswell over 10 years
  • user2304916
    user2304916 about 10 years
    There is an open issue for Anaconda for this problem: github.com/ContinuumIO/anaconda-issues/issues/8