web-dev-qa-db-ja.com

import pandas_datareaderはImportErrorを返します。名前 'is_list_like'をインポートできません

私は仮想環境で働いています。私は間違いなくインポートしてパンダで作業することができますがimport pandas_datareaderしようとしているとき

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime as dt
from matplotlib import style
import pandas_datareader as web

それは以下のエラーを出しています -

Traceback (most recent call last):
  File "stock.py", line 6, in <module>
    import pandas_datareader as web
  File "/home/xxxxx/Django-apps/env/lib/python3.5/site-packages/pandas_datareader/__init__.py", line 2, in <module>
    from .data import (DataReader, Options, get_components_yahoo,
  File "/home/xxxxx/Django-apps/env/lib/python3.5/site-packages/pandas_datareader/data.py", line 14, in <module>
    from pandas_datareader.fred import FredReader
  File "/home/xxxxx/Django-apps/env/lib/python3.5/site-packages/pandas_datareader/fred.py", line 1, in <module>
    from pandas.core.common import is_list_like
ImportError: cannot import name 'is_list_like'
(env) xxxxx@xxxxx-yyyyy ~/pyt $ python stock.py
Traceback (most recent call last):
  File "stock.py", line 6, in <module>
    import pandas_datareader
  File "/home/xxxxx/Django-apps/env/lib/python3.5/site-packages/pandas_datareader/__init__.py", line 2, in <module>
    from .data import (DataReader, Options, get_components_yahoo,
  File "/home/xxxxx/Django-apps/env/lib/python3.5/site-packages/pandas_datareader/data.py", line 14, in <module>
    from pandas_datareader.fred import FredReader
  File "/home/xxxxx/Django-apps/env/lib/python3.5/site-packages/pandas_datareader/fred.py", line 1, in <module>
    from pandas.core.common import is_list_like
ImportError: cannot import name 'is_list_like'
54
Raj

私はこのエラーに出会い、それを解決する方法を見つけました。私のパンダとpandas_datareaderのバージョンは0.23と0.6です。

Python 3.6.5 (default, Apr  1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas_datareader
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/dist-packages/pandas_datareader/__init__.py", line 2, in <module>
    from .data import (DataReader, Options, get_components_yahoo,
  File "/usr/local/lib/python3.6/dist-packages/pandas_datareader/data.py", line 14, in <module>
    from pandas_datareader.fred import FredReader
  File "/usr/local/lib/python3.6/dist-packages/pandas_datareader/fred.py", line 1, in <module>
    from pandas.core.common import is_list_like
ImportError: cannot import name 'is_list_like'

enter image description here

is_list_likeはpandas.api.typesに移動されたので、画像でハイライトされているfred.pyファイルを変更します。 from pandas.core.common import is_list_likefrom pandas.api.types import is_list_likeに置き換えれば、うまくいきます。

enter image description here

61
huanggh

/ - ローカルでファイルを変更せずに bypass あなたのパッケージマネージャ(pip)のバージョン管理は is_list_like のように定義することです:

import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like

直前

import pandas_datareader as web

さらに、この問題はpandas_datareaderバージョン0.7.0リリースで修正される予定です。

93
Nils

これは、Pandas 0.23.0でis_list_likepandas.core.commonからpandas.api.typesに移動されたためです。この問題は修正されました ここ そしてPandas Datareader 0.7.0リリースの一部となるでしょう。現時点では、開発版のDatareaderを使用することをお勧めします。インストール方法は ドキュメント にあります。

11
Addison Lynch

Pandas_datareaderを使用していない場合あなたはあなたのconda環境のデータリーダーがインストールされているかどうかをチェックする必要があります。

import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader as web

/your_installation_path/python2.7/site-packages/pandas_datareader内のfred.pyファイルを編集して、以下のように置き換えます。

from pandas.core.commonインポートis_list_like#コメントIT

from pandas.api.typesインポートis_list_like #ADD

2
Muhammad Sulman

Ubuntu 18.04では、Python 3.6を使って次のようにエラーを解決しました。

cd /home/username/.local/lib/python3.6/site-packages/pandas_datareader

subl fred.py

最初のコード行を変更しました。

from pandas.core.common import is_list_like

from pandas.api.types import is_list_like
1
Rahul Soshte