1. ホーム
  2. python

[解決済み] OS XでのMatplotlibの問題(「ImportError: cannot import name _thread」)。

2022-02-28 23:59:14

質問

ここ数日のある時点で、OS X上でMatplotlibが動かなくなりました。 import matplotlib :

Traceback (most recent call last):
  File "/my/path/to/script/my_script.py", line 15, in <module>
    import matplotlib.pyplot as plt
  File "/Library/Python/2.7/site-packages/matplotlib/pyplot.py", line 34, in <module>
    from matplotlib.figure import Figure, figaspect
  File "/Library/Python/2.7/site-packages/matplotlib/figure.py", line 40, in <module>
    from matplotlib.axes import Axes, SubplotBase, subplot_class_factory
  File "/Library/Python/2.7/site-packages/matplotlib/axes/__init__.py", line 4, in <module>
    from ._subplots import *
  File "/Library/Python/2.7/site-packages/matplotlib/axes/_subplots.py", line 10, in <module>
    from matplotlib.axes._axes import Axes
  File "/Library/Python/2.7/site-packages/matplotlib/axes/_axes.py", line 22, in <module>
    import matplotlib.dates as _  # <-registers a date unit converter
  File "/Library/Python/2.7/site-packages/matplotlib/dates.py", line 126, in <module>
    from dateutil.rrule import (rrule, MO, TU, WE, TH, FR, SA, SU, YEARLY,
  File "/Library/Python/2.7/site-packages/dateutil/rrule.py", line 14, in <module>
    from six.moves import _thread
ImportError: cannot import name _thread

システムの変更としては、Appleが強制的にNTPをアップデートしたことと、Brewを再び動作させるために/usr/localで行ったパーミッションの変更くらいしか思い当たりません。

Pip経由でMatplotlibとPython-dateutilの両方を再インストールしてみましたが、これは役に立ちませんでした。 また、再起動も試しました。 Python 2.7.6を使用しており、/usr/bin/pythonに配置されています。 Yosemite (OS X 10.10.1)を使用しています。

解決方法は?

sudo pip uninstall python-dateutil
sudo pip install python-dateutil==2.2

最近Yosemiteにアップグレードしたのですが、今日の午後も同じエラーメッセージが表示されました。私はなぜdateutilを以前のバージョンに戻すとうまくいくのか完全に理解しているわけではありませんが、上記を実行して以来、問題はありません(私は通常ipython notebookでpyplotをインラインで使用しています)。