ksメモ

私が学んだことを記載したメモです。あとポエム。

MNISTチュートリアルを実行するときにdateutilのバグを踏んだ

TensorflowのMNISTチュートリアルを実行しようとしたときにエラーで落ちた。 たぶん同じバグを踏む人は多いと思うので、メモがてら共有。

発生条件

どうやらチュートリアル用のMNISTサンプルをimportするときに発生しているみたい。

from tensorflow.examples.tutorials.mnist import input_data

自分のPython環境はAnacondaです。

$ python -V
Python 3.5.2 :: Anaconda custom (64-bit)

エラー内容

ちょっと長いので省略して書くが、以下のような内容で落ちる。

$ python main.py
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally
Traceback (most recent call last):
  File "main.py", line 2, in <module>
    from tensorflow.examples.tutorials.mnist import input_data
  File "/home/hogehoge/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/tensorflow/examples/tutorials/mnist/__init__.py", line 21, in <module>
    from tensorflow.examples.tutorials.mnist import input_data
  File "/home/hogehoge/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/tensorflow/examples/tutorials/mnist/input_data.py", line 29, in <module>

#省略

  File "/home/hogehoge/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/pandas/__init__.py", line 22, in <module>
    from pandas.compat.numpy import *
  File "/home/hogehoge/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/pandas/compat/__init__.py", line 350, in <module>
    from dateutil import parser as _date_parser
  File "/home/hogehoge/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/dateutil/parser.py", line 158
    l.append("%s=%s" % (attr, `value`))

ググったらdateutilのバグみたい

ここに、「それはdateutilのバグだね」って書いてあった

Error when importing pandas in Python 3 · Issue #551 · hashdist/hashstack · GitHub

dateutilをアップグレードしたら直った

直し方は単純で、アップグレードしてやればよい。これで終了。

$ conda install -c conda-forge python-dateutil=2.6.0

Python Dateutil :: Anaconda Cloud