Python Error: "ImportError: No module named six"

12

我正在Windows 7操作系统上运行Python 2.7

这是我运行的内容:

>>> import matplotlib.pyplot as plt

然后我得到了这个:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    import matplotlib.pyplot as plt
  File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 29, in <module>
    from matplotlib.figure import Figure, figaspect
  File "C:\Python27\lib\site-packages\matplotlib\figure.py", line 36, in <module>
    from matplotlib.axes import Axes, SubplotBase, subplot_class_factory
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 20, in <module>
    import matplotlib.dates as _  # <-registers a date unit converter
  File "C:\Python27\lib\site-packages\matplotlib\dates.py", line 119, in <module>
    from dateutil.rrule import (rrule, MO, TU, WE, TH, FR, SA, SU, YEARLY,
  File "C:\Python27\lib\site-packages\dateutil\rrule.py", line 18, in <module>
    from six import advance_iterator, integer_types
ImportError: No module named six

现在,我从这里下载了六个:https://pypi.python.org/pypi/six

我解压了它,如果我打开其中一个名为setup.py的文件,然后尝试导入matplotlib,那么它可以工作。但是我难道每次想要绘图时都要这样做吗?有没有一种自动让它工作的方法呢?


@shx2,请在创建一个简短的标签之前,一定要使用完整的标签列表进行搜索。我们已经有了一个关于six的标签,只是由于问题数量不足而没有出现在自动完成中。 - Charles
7个回答

19

你需要在系统上安装它。这基本上意味着将zip文件放在Python可以找到的地方,但是最简单的方法是通过pip install six进行安装。这将再次下载它。

就像matplotlib安装说明所提到的那样,sixdateutil包的依赖项。大多数合理的安装方法会自动拉入此依赖项; 如果您最初执行了pip install python-dateutil,则该缺少的依赖项应该已经被满足。如果您需要完全手动安装,则应仔细阅读这些说明。


1
或者,他们可以执行 pip install six.tar.gz 或者无论压缩文件叫什么名字。这样就不会再次下载了。 - SethMMorton
在此之前,您可能需要安装 pip。http://pypi.python.org/ 起始页面包含您所需的所有文档。 - tripleee
1
وˆ‘هڈ‘çژ°ه®‰è£…dateutil需è¦پن½؟用pip install python-dateutilم€‚ - RaelB
1
为什么这些pip模块无法正确安装它们的依赖项?这只是一个临时解决方案,无法解决问题。 - swade
@StevenWade 我猜测OP没有使用pip,这可能是问题的根源。 - tripleee

8

我也遇到了完全相同的错误信息。看起来有很多可能的原因。在我的情况下,我通过重新安装six解决了这个问题。

pip uninstall six ; pip install six

我猜之前的安装在正常结束之前被中止了。或者可能是权限问题。或者其他什么原因……现在已经太晚去调查真正的原因了。


2

对我来说,我安装了两个版本的matplotlib。只需运行“pip uninstall matplotlib”,然后再次运行“pip install matplotlib”。对我来说,多次下载搞乱了一切。首先尝试这个方法,如果没有帮助,请继续进行下一步。


1

经过长时间的奋斗,我找到了它的工作方式。Python 3.4版本。

实际上,许多人说可以下载六个包作为zip文件,并将内容提取到“站点包”文件夹(C:\ Python34 \ Lib \ site-packages)中,以便包含“六个”模块的init.py文件从那里读取。

在此之后,在相同的init.py文件中,当我们运行python脚本时,会运行4-5个模块错误,指出该模块不可用。 经过长时间搜索后,我发现此页面非常有用,只需继续按照IDLE所述的错误进行即可。

祝你好运!"


1

将 six.py 和 six.pyc 复制到 \Lib 目录下。


1
在命令行中,导航到包含 setup.py 的文件夹并运行。
python setup.py install

这将在Python的site-packages文件夹中安装six包,这是所有第三方模块存放的地方。现在,您应该能够无问题地导入matplotlib了。

0

我可能有点晚了,但我也遇到了同样的问题。不过在我安装了Pandas之后,问题就解决了。清理之后,我收到了这条消息:

“成功安装了pandas pytz six”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接