由于无法导入unichr,Python matplotlib无法导入

时间:2014-09-18 19:05:40

标签: python matplotlib

我正在使用Python 2.7.5+运行Ubuntu 13.10,每当我尝试导入matplotlib包时,都会出错。具体来说,我的测试脚本只有以下代码:

#!/usr/bin/python
import matplotlib.pyplot as plt

当我运行测试脚本时,这是错误:

Traceback (most recent call last):
  File "./test.py", line 2, in <module>
    import matplotlib.pyplot as plt
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 27, in <module>
    import matplotlib.colorbar
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/colorbar.py", line 34, in <module>
    import matplotlib.collections as collections
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py", line 27, in <module>
    import matplotlib.backend_bases as backend_bases
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backend_bases.py", line 56, in <module>
    import matplotlib.textpath as textpath
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/textpath.py", line 22, in <module>
    from matplotlib.mathtext import MathTextParser
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/mathtext.py", line 26, in <module>
    from six import unichr
ImportError: cannot import name unichr

知道我做错了吗?

1 个答案:

答案 0 :(得分:3)

您显然有six的过时版本。

{1.4}版本中添加了unichr包装器,如CHANGES中所示。我不确定1.4.0什么时候发布,但是issue #25的修复程序是在2013-05-18提交的,所以...之后的某个时间。

所以,如果你print(six.__version__),并且它的值小于'1.4.0',那就是你的问题。

根据您是使用pip安装软件包还是使用系统的软件包管理器安装软件包,解决方案将类似于以下方法之一:

$ pip install --upgrade six
$ apt-get install six
$ brew install --upgrade six

......等等。


但同时,matplotlib不应该要求1.3,而是使用1.4中仅提供的功能。您的GitHub问题matplotlib#3538应该可以解决此问题。