pylab导入错误:没有名为_thread的模块
从Ubuntu 10.04开始,我通过easy_install安装了pylab。经过一些升级后,我可以导入pylab。首先,我运行了通过easy_install安装的ipython:
$ 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.
然后我尝试导入matplotlib。
In [1]: import matplotlib
In [2]: matplotlib.__version__
Out[2]: '1.0.1'
但是在导入pylab时出现了以下错误:
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
这可能是python_dateutil的问题。我删除了通过synaptic安装的旧版本(1.4.3),但这并没有解决问题。
我该如何在不重新安装所有东西的情况下修复这个问题呢?谢谢。
Jean-Patrick
2 个回答
3
我通过简单的方式解决了这个问题:
pip install python-dateutil
我在使用Python 2.7.3(通过Homebrew在OS X上安装),而我安装的dateutil似乎是2.x系列(也就是说,它应该和这个Python不兼容)。但它居然可以正常工作。
以下是在OS X Mountain Lion上让matplotlib等库运行的完整命令:
brew install python
brew link --overwrite python
brew tap samueljohn/python
brew install scipy
pip install python-dateutil
测试方法:
从这里下载一个.py
源文件。
python file.py
应该会打开一个带有曲线的图形界面窗口。
9
这个问题是由 dateutil 引起的。
你可以看到,你用 easy_install 安装了 dateutil 的 2.0 版本,但这个版本和 Python 2.x 不兼容。你应该卸载(或者直接删除整个文件夹)这个 2.0 版本,然后去它的 主页 下载 1.5 版本,手动安装它。
2.0 版本是为 Python 3.x 准备的,你也可以在主页上找到这个版本。
--更新--
dateutil 的 2.1 版本已经发布,现在不再需要使用 1.5 版本了,只要你能接受同时安装 six
:)