2013-10-07 29 views
8

Nie mogę używać import pylab przy użyciu najnowszej wersji Anaconda (64-bitowy system Linux). Inne pakiety wydają się działać dobrze. (Uwaga: nie mam sudo dostępu)Anaconda: Nie można importować pylab

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 

Gdy próbuję

> conda install sip 

uzyskać:

Error: No packages found matching: sip 

ja też się błędy z:

$ 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 

Jakieś przemyślenia na temat tego, dlaczego?

+0

Wydaje się, że nie masz poprawnie zainstalowanego 'PyQt', użyj innego backendu. – tacaswell

+0

Dzięki @tcaswell. Jakiego innego zaplecza chciałbyś polecić? – Josh

+1

Odpowiedź snicky (ale w większości poprawna) jest tym, na kogo masz zainstalowane zależności. Wypróbuj 'tkagg',' wxagg' lub 'gtk3agg' – tacaswell

Odpowiedz

10

prostu miał ten problem i to było związane z którego qt backend matplotlib próbował użyć, spróbuj:

import PyQt4 

Jeśli nie masz PyQt4 prawdopodobnie masz PySide

import PySide 

If w takim przypadku musisz ustawić wartość matplotlib.rcParams['backend.qt4'] == 'PySide', a nie 'PyQt4'. Można również zrobić to w pliku matplotlibrc (~/.matplotlib/matplotlibrc)

# find and change line: 
backend.qt4 : PySide 

Uwaga: jeśli nie masz plik matplotlibrc można skopiować z katalogu źródłowego matplotlib

import os 
import matplotlib 
mpl_dir = os.path.dirname(matplotlib.__file__) 
os.system("cp {}/mpl-data/matplotlibrc ~/.matplotlib/".format(mpl_dir)) 
+0

Jest otwarty problem dla Anacondy dla tego problemu: https://github.com/ContinuumIO/anaconda-issues/issues/8 – user2304916