2011-12-05 15 views
7

Desde ubuntu 10.04, instalé pylab con easy_install. Después de una actualización, puedo importar pylab. Primera CORRO ipython instala desde easy_install:pylab ImportError: Ningún módulo llamado _thread

$ ipython 
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
Type "copyright", "credits" or "license" for more information. 

IPython 0.11 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

Entonces intento importar matplotlib

In [1]: import matplotlib 

In [2]: matplotlib.__version__ 
Out[2]: '1.0.1' 

Pero al importar failes pylab de la siguiente manera:

In [3]: import matplotlib.pylab 
--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
/home/claire/<ipython-input-3-1d30b9aee20b> in <module>() 
----> 1 import matplotlib.pylab 

/usr/local/lib/python2.6/dist-packages/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib /pylab.py in <module>() 
    218  silent_list, iterable, dedent 
    219 
--> 220 from matplotlib import mpl # pulls in most modules 
    221 
    222 from matplotlib.dates import date2num, num2date,\ 

/usr/local/lib/python2.6/dist-packages/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib /mpl.py in <module>() 
     1 from matplotlib import artist 
     2 from matplotlib import axis 
----> 3 from matplotlib import axes 
     4 from matplotlib import cbook 
     5 from matplotlib import collections 

/usr/local/lib/python2.6/dist-packages/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib /axes.py in <module>() 
    17 import matplotlib.colors as mcolors 
    18 import matplotlib.contour as mcontour 
---> 19 import matplotlib.dates as mdates 
    20 from matplotlib import docstring 
    21 import matplotlib.font_manager as font_manager 

/usr/local/lib/python2.6/dist-packages/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib/dates.py in <module>() 
    117 import matplotlib.ticker as ticker 
    118 
--> 119 from dateutil.rrule import rrule, MO, TU, WE, TH, FR, SA, SU, YEARLY, \ 
    120  MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY 
    121 from dateutil.relativedelta import relativedelta 

/usr/local/lib/python2.6/dist-packages/python_dateutil-2.0-py2.6.egg/dateutil/rrule.py in <module>() 
    11 import datetime 
    12 import calendar 
---> 13 import _thread 
    14 import sys 
    15 

ImportError: No module named _thread 

Esto puede ser un problema python_dateutil . Elimino la versión anterior (1.4.3) instalada con Synaptic, pero eso no soluciona el problema.

¿Cómo podría solucionarlo sin volver a instalar todo? Gracias. Jean-Patrick

Respuesta

9

Es causado por dateutil.

Como puede ver, ha instalado dateutil 2.0 usando easy_install, pero no es compatible con python 2.x. Debe desinstalar (o simplemente eliminar toda la carpeta) la versión 2.0 y luego ir a su homepage y descargar la versión 1.5, luego instalarlo manualmente.

Versión 2.0 es para Python 3.x, que también se puede encontrar en la página de inicio.

--UPDATE--

dateutil 2.1 está fuera y ahora es NO necesaria para utilizar 1,5 más, si puedes soportar six se instalan también :)

+1

Como nota al margen, no contamine la instalación de su sistema utilizando 'easy_install' de esta manera. Use [virtualenv] (https://github.com/pypa/virtualenv). –

+1

@felix Yan: Gracias. Eso significa que easy_install instala un módulo incompatible, raro. –

+0

@Noufal Ibrahim: Esa es una idea, tendré que aprender eso. ¿Sabes si el rendimiento es bueno? Supongo que virtualenv no significa máquina virtual. –

3

llegué esto esté arreglado simplemente:

pip install python-dateutil 

estoy corriendo Python 2.7.3 (en OS X desde Homebrew) y el dateutil instalado parecía ser serie 2.x (es decir no debería ser compatible con este Python). Pero funciona.

Aquí está el conjunto completo de comandos para obtener matplotlib et.al. que se ejecuta en OS X Mountain Lion:

brew install python 
brew link --overwrite python 
brew tap samueljohn/python 
brew install scipy 
pip install python-dateutil 

Para probar:

Grab una fuente de here.py.

python file.py 

Debe abrir una ventana de GUI con curvas en ella.

Cuestiones relacionadas